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

                [TOC] ## 線程與進程的區別 * 多個線程是在同一個進程內的,線程之間可以共享內存變量而實現線程間的通信。 * 線程比進程更加輕量級,進程要比線程更加消耗系統資源。 > 多線程存在的問題主要有 * 線程讀寫變量存在著同步問題需要加鎖 * 鎖粒度過大會存在性能問題,會導致只有一個線程在運行,其它線程都在等待鎖,也就無法實現并行。 * 同時使用多個鎖時邏輯復雜,一旦某個鎖沒有被正確釋放可能會發生線程死鎖。 * 某個線程發生致命錯誤會導致整個進程崩潰 > 相對而言多進程更為穩定,可利用進程間通信`IPC`技術實現數據共享。多進程通信的方式主要包括 * 共享內存 共享內存和線程間讀寫變量時一樣的,都需要加鎖,同時也存在同步、死鎖等問題。 * 消息隊列 消息隊列采用多個子進程搶占隊列的模式,性能較好。 * 管道、UnixSock、TCP、UDP 可以使用`read/write`來傳遞數據,TCP/UDP使用socket來通信,子進程可以分布運行。 ## PHP 多進程案例 ~~~ public function actionTest() { $procNum = 150; // 150個進程 for($i = 0; $i < $procNum; $i++){ $PID = pcntl_fork(); //創建子進程 if ($PID == 0){ doFunc(); exit(); } elseif ($PID == -1) { die('could not fork'); } else { // 如果在這里寫 pcntl_wait($status),則只有當前進程執行完畢后才會創建下一個進程 } } echo 'done'; } public function doFunc(){ echo 'haha'; } ~~~ ## 創建多進程的返回值 ~~~ public function actionTest3() { $nPID = pcntl_fork();//創建子進程 var_dump($nPID); } ~~~ > 返回值 ![](https://img.kancloud.cn/ac/b0/acb0ebdc0879d9749567b15911c9a067_565x58.png)
                  <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>

                              哎呀哎呀视频在线观看