美文网首页
Easyswoole 协程上下文管理 Context

Easyswoole 协程上下文管理 Context

作者: 骑蚂蚁上高速_jun | 来源:发表于2020-05-03 19:49 被阅读0次

在swoole中,由于多个协程是并发执行的,因此不能使用类静态变量/全局变量保存协程上下文内容。使用局部变量是安全的,因为局部变量的值会自动保存在协程栈中,其他协程访问不到协程的局部变量。

在原生 swoole 中使用协程上下文管理

Co\run(function(){
      $cid = Co::getCid(); // 得到当前协程id
      $context = Co::getContext($cid=null); 不传递 $cid,默认是当前协程id
      // 保存属性到 协程上下文 Context 中
      $context["a"] = 1; 
      $context["b"] = 2;
      //  在子协程中获取 示例
      go(function(){
              $cid = Co::getPcid(); // 获取父协程id
              $context = Co::getContext($cid);  // 得到 父协程中的 $context 变量
      });
      // 在父协程的另外一个作用域获取案例
      function  test():string{
        $cid = Co::getCid();

        $data = Co::getContext($cid);
        var_dump($data);
        return time()."  -> 111\n";
    }
});

Easyswoole 协程上下文管理

// 当前父协程中设置属性
        \EasySwoole\Component\Context\ContextManager::getInstance()->set("a",new \stdClass(),$cid=null);
        \EasySwoole\Component\Context\ContextManager::getInstance()->set("b",1,$cid=null);

        go(function(){
            // 可以在子协程中获取
            var_dump(\EasySwoole\Component\Context\ContextManager::getInstance()->get("a",$cid=null));
        });
        // 同理也可以在 协程其他作用域中获取
        

相关文章

  • Easyswoole 协程上下文管理 Context

    在swoole中,由于多个协程是并发执行的,因此不能使用类静态变量/全局变量保存协程上下文内容。使用局部变量是安全...

  • 协程的上下文与异常处理

    1、协程的上下文是什么 2、组合上下文中的元素 3、协程上下文的继承 4、协程上下文的继承 5、协程上下文的继承 ...

  • Go Context上下文的应用

    Go的上下文应用 1.背景原理 Go上下文就是context。对于go来说go routine(协程)是一个非常有...

  • Kotlin-作用域与上下文

    协程上下文 在协程的源代码中协程的上下文是一个CoroutineContext接口,他就是一个存储实现了Corou...

  • 协程调度 与 生命周期

    我们可以为协程指定上下文环境 子协程 当一个协程被其它协程在 CoroutineScope 中启动的时候, 它将通...

  • 协程

    协程,又称微线程,纤程,协程是一种用户态的轻量级线程 协程是单线程 协程的好处: 1 没有上下文切换 ...

  • 3.协程的调度(2)

    协程上下文源代码 通过源码我们可以看出协程上下文是一个跟list类似的数据结构CoroutineContext 是...

  • Python 协程学习笔记

    协程 协程是轻量级线程,拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时...

  • 协程

    协程,又称微线程,纤程。英文名Coroutine。协程是一种用户态的轻量级线程。协程拥有自己的寄存器上下文和栈。协...

  • 协程

    协程是一种用户轻量级线程。协程拥有自己的寄存器上下文和栈,协程调度切换时寄存器上下文和栈保存到其它地方,在切回来的...

网友评论

      本文标题:Easyswoole 协程上下文管理 Context

      本文链接:https://www.haomeiwen.com/subject/madjghtx.html