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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Process->write [TOC] 向管道內寫入數據。 ~~~ int Process->write(string $data); ~~~ * `$data`的長度在`Linux`系統下最大不超過`8K`,`MacOS/FreeBSD`下最大不超過`2K` * 在子進程內調用`write`,父進程可以調用`read`接收此數據 * 在父進程內調用`write`,子進程可以調用`read`接收此數據 `Swoole`底層使用`Unix Socket`實現通信,`Unix Socket`是內核實現的全內存通信,無任何IO消耗。在1進程write,1進程read,每次讀寫`1024`字節數據的測試中,`100`萬次通信僅需`1.02`秒。 管道通信默認的方式是流式,`write`寫入的數據在`read`可能會被底層合并。可以設置`swoole_process`構造函數的第三個參數為`2`改變為數據報式。 > MacOS/FreeBSD可以設置`net.local.dgram.maxdgram`內核參數修改最大長度 ## 異步模式 如果進程內使用了異步IO,比如`swoole_event_add`,進程內執行write操作將變為異步模式。swoole底層會監聽可寫事件,自動完成管道寫入。 異步模式下如果SOCKET緩存區已滿,Swoole的處理邏輯請參考[swoole\_event\_write](swoole\_event\_write.md) ## 同步模式 進程內未使用任何異步IO,當前管道為同步阻塞模式,如果緩存區已滿,將阻塞等待直到write操作完成。 * Task進程就是同步阻塞的模式,如果管道的緩存區已滿,調用`write`時會發生阻塞 ## 亂序丟包 很多網絡文章提到`DGRAM`模式下會出現丟包、亂序問題,實際上這些問題僅存在于`Internet`網絡的`UDP`通信。`UnixSocket`是Linux內核實現的內存數據隊列,不會出現丟包亂序問題。`write`寫入和`read`讀取的順序是完全一致的。`write`返回成功后一定是可以`read`到的。
                  <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>

                              哎呀哎呀视频在线观看