<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國際加速解決方案。 廣告
                # Server中對象的4層生命周期 [TOC] 開發`Server`程序與普通`LAMP`的`Web`編程有本質區別。在傳統的`Web`編程中,`PHP`程序員只需要關注`request`到達,`request`結束即可。而在`Server`程序中程序員可以操控更大范圍,變量/對象可以有四種生存周期。 > 變量、對象、資源、`require/include`的文件等下面統稱為對象 ## 程序全局期 在`Server->start`之前就創建好的對象,我們稱之為程序全局生命周期。這些變量在程序啟動后就會一直存在,直到整個程序結束運行才會銷毀。 有一些服務器程序可能會連續運行數月甚至數年才會關閉/重啟,那么程序全局期的對象在這段時間持續駐留在內存中的。程序全局對象所占用的內存是`Worker`進程間共享的,不會額外占用內存。 這部分內存會在寫時分離(`COW`),在`Worker`進程內對這些對象進行寫操作時,會自動從共享內存中分離,變為**進程全局**對象。 > 程序全局期`include`/`require`的代碼,必須在整個程序`shutdown`時才會釋放,`reload`無效 ## 進程全局期 `Server`啟動后會創建多個進程,每個`Worker`子進程處理的請求數超過`max_request`配置后,就會自動銷毀。`Worker`進程啟動后創建的對象(`onWorkerStart`中創建的對象),在這個子進程存活周期之內,是常駐內存的。`onConnect/onReceive/onClose`中都可以去訪問它。 > 進程全局對象所占用的內存是在當前子進程內存堆的,并非共享內存。對此對象的修改僅在當前`Worker`進程中有效 > 進程期include/require的文件,在`reload`后就會重新加載 ## 會話期 會話期是在`onConnect`后創建,或者在第一次`onReceive`時創建,`onClose`時銷毀。一個客戶端連接進入后,創建的對象會常駐內存,直到此客戶端離開才會銷毀。 在`LAMP`中,一個客戶端瀏覽器訪問多次網站,就可以理解為會話期。但傳統`PHP`程序,并不能感知到。只有單次訪問時使用`session_start`,訪問`$_SESSION`全局變量才能得到會話期的一些信息。 `Server`中會話期的對象直接是常駐內存,不需要`session_start`之類操作。可以直接訪問對象,并執行對象的方法。 ## 請求期 請求期就是指一個完整的請求發來,也就是`onReceive`收到請求開始處理,直到返回結果發送`response`。這個周期所創建的對象,會在請求完成后銷毀。 請求期對象與普通`PHP`程序中的對象就是一樣的。請求到來時創建,請求結束后銷毀。
                  <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>

                              哎呀哎呀视频在线观看