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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Timer [TOC] 毫秒精度的定時器。底層基于`epoll_wait`和`setitimer`實現,數據結構使用`最小堆`,可支持添加大量定時器。 * 在同步進程中使用`setitimer`和信號實現,如`Manager`和`TaskWorker`進程 * 在異步進程中使用`epoll_wait/kevent/poll/select`超時時間實現 ## 性能 底層使用最小堆數據結構實現定時器,定時器的添加和刪除,全部為內存操作,因此性能是非常高的。官方的基準測試腳本[https://github.com/swoole/swoole-src/blob/master/benchmark/timer.php](https://github.com/swoole/swoole-src/blob/master/benchmark/timer.php)中,添加或刪除`10萬`個隨機時間的定時器耗時為`0.08s`左右。 ~~~ ~/workspace/swoole/benchmark$ php timer.php add 100000 timer :0.091133117675781s del 100000 timer :0.084658145904541s ~~~ > 定時器是內存操作,無`IO`消耗 ## 差異 `Timer`與`PHP`本身的`pcntl_alarm`是不同的。`pcntl_alarm`是基于時鐘信號 +`tick`函數實現存在一些缺陷: * 最大僅支持到秒,而`Timer`可以到毫秒級別 * 不支持同時設定多個定時器程序 * `pcntl_alarm`依賴`declare(ticks = 1)`,性能很差 ## 零毫秒定時器 底層不支持時間參數為`0`的定時器。這與`Node.js`等編程語言不同。在`Swoole`里可以使用`Swoole\Event::defer`實現類似的功能。 ~~~ Swoole\Event::defer(function () { echo "hello\n"; }); ~~~ 上述代碼與`JS`中的`setTimeout(0, func)`效果是完全一致的。
                  <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>

                              哎呀哎呀视频在线观看