<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ref on PlumePHP</title><link>https://plumephp.com/tags/ref/</link><description>Recent content in Ref on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 30 Sep 2026 09:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/ref/index.xml" rel="self" type="application/rss+xml"/><item><title>Cats Effect 深度解析：IO 运行时、fibers 与并发原语</title><link>https://plumephp.com/scala-cats-effect-deep-dive/</link><pubDate>Wed, 30 Sep 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/scala-cats-effect-deep-dive/</guid><description>&lt;p&gt;「IO 就是个能跑的 Monad」只是入门——生产级 Cats Effect 的威力藏在&lt;strong&gt;运行时&lt;/strong&gt;里：谁在跑你的代码、fiber 如何被调度与取消、&lt;code&gt;Ref&lt;/code&gt;/&lt;code&gt;Deferred&lt;/code&gt; 如何无锁协作、慢消费者如何不被快生产者压垮。本文不讲 API 罗列，而是把 CE3 的运行时机制一层层剥开：线程池的构造与选择、fibers 与结构化取消的语义、并发原语的内存语义、背压与限流的工程策略、以及 &lt;code&gt;bracket&lt;/code&gt;/&lt;code&gt;Resource&lt;/code&gt;/超时重试背后的 &lt;code&gt;MonadCancel&lt;/code&gt;。读完你能解释「为什么这么写就安全、那么写就泄漏」。&lt;/p&gt;</description></item></channel></rss>