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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 隊列(Queue) 異步并發的服務器里經常使用隊列實現生產者消費者模型,解決并發排隊問題。PHP的SPL標準庫中提供了`SplQueue`擴展內置的隊列數據結構。另外PHP的數組也提供了`array_pop`和`array_shift`可以使用數組模擬隊列數據結構。 SplQueue ------ ```php $queue = new SplQueue; //入隊 $queue->push($data); //出隊 $data = $queue->shift(); //查詢隊列中的排隊數量 $n = count($queue); ``` Array模擬隊列 ----- ```php $queue = array(); //入隊 $queue[] = $data; //出隊 $data = array_shift($queue); //查詢隊列中的排隊數量 $n = count($queue); ``` 性能對比 ---- 雖然使用Array可以實現隊列,但實際上性能會非常差。在一個大并發的服務器程序上,建議使用`SplQueue`作為隊列數據結構。 100萬條數據隨機入隊、出隊,使用`SplQueue`僅用`2312.345ms`即可完成,而使用Array模擬的隊列的程序根本無法完成測試,CPU一直持續在100%。 降低數據條數到1萬條后(100倍),也需要`260ms`才能完成測試。 SplQueue ```php $splq = new SplQueue; for($i = 0; $i < 1000000; $i++) { $data = "hello $i\n"; $splq->push($data); if ($i % 100 == 99 and count($splq) > 100) { $popN = rand(10, 99); for ($j = 0; $j < $popN; $j++) { $splq->shift(); } } } $popN = count($splq); for ($j = 0; $j < $popN; $j++) { $splq->pop(); } ``` Array隊列 ```php $arrq = array(); for($i = 0; $i <1000000; $i++) { $data = "hello $i\n"; $arrq[] = $data; if ($i % 100 == 99 and count($arrq) > 100) { $popN = rand(10, 99); for ($j = 0; $j < $popN; $j++) { array_shift($arrq); } } } $popN = count($arrq); for ($j = 0; $j < $popN; $j++) { array_shift($arrq); } ```
                  <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>

                              哎呀哎呀视频在线观看