workerman的协程,运行完就懂销毁协程内的变量?

bobshipwood

问题描述

我最近在搞个plc(modbus-tcp)通讯,其中需要用到协程处理.我想问个问题,就是协程会自动销毁其变量吗

$worker2->onWorkerStart = function (TcpConnection $connection, Request $request) {
    Coroutine::create(function () {
       $a = 1;

       $b =  ReadRegistersBuilder::newReadHoldingRegisters("192.168.1.1:502")
       ->bit(25, 0, 'stop_alarm')->build();

       $responseContainer = (new NonBlockingClient(['readTimeoutSec' => 0.2]))
       ->sendRequests($b);

       $d = 3;
};

我的问题如下:
1 这个协程会自动结束,比方说运行到$d=3就自动结束并关闭这个协程?
2 这个协程内的变量php会触发自动回收嘛,因为我理解外层的协程环境没有了。

为此你搜索到了哪些方案及不适用的原因

没有。

99 2 0
2个回答

超高级的稻姬

从你写的代码逻辑来看,确实是运行到$d = 3;这一行的时候协程就会关闭退出,在内部定义的变量都会销毁的

evilk
  1. 是的
  2. 会的
🔝