<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 1.7.2 swoole_process多進程模塊的使用 1.7.2 swoole增加了多進程管理模塊來替代PHP的pcntl,它相比pcntl的不同點是: * swoole_process提供了pcntl沒有的進程間通信 * swoole_process支持重定向標準輸入和輸出,在子進程內echo或者讀鍵盤輸入可以被重定向為從管道中取數據 * 子進程可以異步化 進程間通信(IPC) ---- 子進程和父進程之間可以通過管道通信,傳遞數據。IPC在多進程編程中經常用到,PHP的pcntl模塊沒有提供IPC的功能,所以功能有局限。而swoole_process提供了這些功能,并且封裝了接口。只需調用接口即可完成進程間通信。 ```php $worker_num = 8; for($i = 0; $i < $worker_num; $i++) { $process = new swoole_process('callback_function', $redirect_stdout); $pid = $process->start(); $workers[$pid] = $process; } function callback_function(swoole_process $worker) { //echo "Worker: start. PID=".$worker->pid."\n"; //recv data from master $recv = $worker->read(); echo "From Master: $recv\n"; //send data to master $worker->write("hello master\n"); sleep(2); $worker->exit(0); } ``` read/write 2個方法就是向管道內讀寫數據。主進程內可以通過write/read 向子進程寫入,讀取數據。 標準輸入/輸出重定向 ---- swoole_process支持了標準輸入輸出的重定向,子進程內echo時,會自動寫入管道,而不是打印到屏幕。 子進程異步 ---- swoole_process創建的子進程可以是同步的,也可以是異步的。 ```php function callback_function_async(swoole_process $worker) { //echo "Worker: start. PID=".$worker->pid."\n"; //recv data from master $GLOBALS['worker'] = $worker; swoole_event_add($worker->pipe, function($pipe) { $worker = $GLOBALS['worker']; $recv = $worker->read(); echo "From Master: $recv\n"; //send data to master $worker->write("hello master\n"); sleep(2); $worker->exit(0); }); } ``` 可以將管道加入到swoole_event中即可實現異步的進程間通信,另外子進程內可以使用swoole_timer/swoole_client/swoole_async這些異步的API。或者使用swoole_event_add直接操作swoole的EventLoop。 其他 ---- swoole_process 1.7.3 還會加入進程CPU親和設置、守護進程化、使用消息隊列/共享內存Channel等特性。
                  <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>

                              哎呀哎呀视频在线观看