我最近在搞个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会触发自动回收嘛,因为我理解外层的协程环境没有了。
没有。
从你写的代码逻辑来看,确实是运行到
$d = 3;
这一行的时候协程就会关闭退出,在内部定义的变量都会销毁的谢谢
谢谢