Swoole协程核心API之getContext

功能:

Coroutine::getContext()用于回去当前协程的独立上下文对象,存储协程内共享的数据,确保协程间数据隔离.

getContext和局部变量的对比:

对比点 局部变量 getContext
隔离性 在协程内是隔离的 隔离
作用域 只在当前函数或当前闭包内有效 在整个协程内都可以访问
适合多层调用 必须一致通过函数参数传递下去 任意函数都能取到
封装能力 可做协程容器
生命周期 跟变量作用域走 跟协程走(协程销毁时清理)

 

如果你的变量只在一个函数闭包里用,用普通变量没问题.

如果你要跨函数,跨类,甚至中间调用了异步库(如数据库连接池,任务调度器等),用getContext()是最稳妥的方案.

getContext()本质上是每个协程内的超全局变量.

posted @ 2025-04-25 14:37  X__cicada  阅读(34)  评论(0)    收藏  举报