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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                注意:異步子進程功能只能用在linux系統服務器才生效,并且要開啟`pcntl`這個PHP擴展,但不影響windows執行,也就是說,windows服務器雖然不生效,但代碼還是會執行的,只不過不能分子進程異步執行,而是同步執行,就是需要用戶等待更長的時間而已 ***** 對于很耗時的,不需要用戶交互的功能,比如用戶回復貼子需要公眾號或者手機信息或郵件通知樓主(這些都非常耗時的),同時還需要更新網站的今日發貼數,這些對回貼人來說,根本就不需要馬上看到的效果,而程序處理起來又可能很耗時,就可以考慮開啟子進程。 關鍵點有兩個:其一,用戶并不需要馬上看到執行效果,其二,可能比較耗時。這個時候就可以考慮采用子進程了。 下面拿一個圖講解 ![](https://img.kancloud.cn/4b/25/4b250ff2cdc1f9e8d3eccde3540f1de8_1467x647.png) 其中`fork_set();` 函數后面的代碼就開始進行子進程。這個函數前面的代碼就是用戶當前所等待執行的。 ![](https://img.kancloud.cn/f8/97/f8972254cbe91e778ad55d426160e3bf_1071x533.png) 如下圖所示,從`fork_set()` 函數這個位置開始就啟用子進程。你把耗時的,不需要用戶關注的功能就放在子進程里,讓他在后臺異步執行。需要用戶得到響應的結果,就要放在主進程里同步執行反饋給用戶。 至于`fork_set()` 函數最好放在哪個位置呢? 一般放在用戶提交數據入庫以后那個分界點,因為入庫前都需要做判斷。并且也不能允許它重復入庫。所以最合理的位置就是入庫之后那個分界點。 異步子進程更適合POST數據,取數據的話不是很適合。 通過 `fork_main()`==true 可以判斷是主進程 ,通過`fork_son()`==true 可以判斷是子進程。 寫代碼的時候,只能這樣寫 ~~~ if( fork_main()){ //執行代碼 } 或者 if( fork_main()==true){ //執行代碼 } if( fork_son()){ //執行代碼 } 或者 if( fork_son()==true){ //執行代碼 } ~~~ 絕對不可以按下面的方法處理,也就是說不能判斷為非這種情況,必須按是來判斷,不能按非來判斷。 ~~~ if( !fork_main()){ //執行代碼 } if( fork_main()==false){ //執行代碼 } if( fork_son()==false){ //執行代碼 } if( !fork_son()){ //執行代碼 } ~~~ 特別提醒,`fork_set()` 函數后面的代碼如果不做判斷的話,主進程與子進程都會同時執行,如果有入庫的話,會導致重復入庫,這一點務必要注意!!! 所以對于入庫的操作必須要做判斷處理。不入庫的代碼,取數據的代碼,重復執行是沒問題的。 `fork_set()` 函數前面的代碼,就只執行一次,子進程不會單獨再去執行。子進程只會從`fork_set()` 函數的后面開始執行。是異步開啟一個進程去執行。`fork_set()` 函數前是什么變量值,子進程會繼續沿用。子進程修改后的變量值不會影響到主進程,`fork_set()` 函數后的邏輯與變量,主進程 與子進程他們是互相隔離的。
                  <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>

                              哎呀哎呀视频在线观看