<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 4.3.0 在 Process 中使用協程 [TOC] 在`4.3.0`版本之前,`Process`并不支持協程,需要在新進程的`callback_function`中使用`go`創建協程,并且進程自帶的管道也不支持協程。在`4.3.0`版本中,`Process`也支持了協程,可以直接使用協程相關`API`,也可以使用協程調度的方式,實現進程間通信。 ## 使用協程 `4.3.0`版本`Process`類的構造方法增加了第四個參數,傳入`true`表示開啟協程。開啟協程后,可以直接調用協程相關`API`,無需自行創建。 ~~~ $proc = new \swoole_process(function () { co::sleep(0.2); echo "SUCCESS\n"; }, false, 1, true); $proc->start(); ~~~ * 第四個參數傳入`true`即可在`callback_function`中直接使用協程`API` ## 進程間通信 `4.3.0`版本新增了`Process::exportSocket`可以將管道導出為一個`Swoole\Coroutine\Socket`對象,通過讀寫此`Socket`就可以實現通信。 ~~~ $proc1 = new \swoole_process(function (swoole_process $proc) { $socket = $proc->exportSocket(); echo $socket->recv(); $socket->send("hello proc2\n"); echo "proc1 stop\n"; }, false, 1, true); assert($proc1->start()); $proc2 = new \swoole_process(function (swoole_process $proc) use ($proc1) { Co::sleep(0.01); $socket = $proc1->exportSocket(); $socket->send("hello proc1\n"); echo $socket->recv(); echo "proc2 stop\n"; }, false, 0, true); assert($proc2->start()); swoole_process::wait(true); swoole_process::wait(true); ~~~ ## 注意事項 * 主進程中不要使用協程,否則在協程空間內,可能無法`fork`子進程。主進程內還是繼續使用同步阻塞或者異步的模式來管理進程 * 兩個子進程之間實際上只需要一個管道即可完成通信 * 管道類型是`SOCK_STREAM`時,多個進程同時寫入一個進程的管道,可能存在風險,可能會產生數據錯亂。存在交叉寫入時可以使用`SOCK_DGRAM`格式的管道,或者進行加鎖
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看