<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 對象池 SD框架中重要的概念:對象池 框架中大量的使用了對象池模式,對象池模式可以很輕松的實現對象的復用,而不必頻繁的GC和New,使得內存平滑減少泄露的風險。 那么如何使用對象池技術,以及需要注意什么呢。 ## 如何使用對象池 框架提供了Pool類方便你使用對象池技術。 ``` Pool::getInstance()->get(TaskCoroutine::class)->init($this->task_proxy_data, $dst_worker_id); ``` 例如上面的例子,我們就獲取了TaskCoroutine的一個實例。如果對象池中沒有TaskCoroutine那么對象池會new一個出來,使用完對象后需要歸還給對象池。 ``` Pool::getInstance()->push($taskCoroutine); ``` $taskCoroutine為TaskCoroutine的一個實例。 ## 需要注意的 對象池技術是復用對象,減少new的次數,那么就請注意__construct構造方法只會在第一次new的時候起作用,之后便不會再調用,所以建議大家書寫對象池對象的時候用init作為初始化對象的方法并返回自身。 ``` class TaskCoroutine extends CoroutineBase { public function __construct() { parent::__construct(); } public function init($task_proxy_data, $id) { $this->task_proxy_data = $task_proxy_data; $this->id = $id; $this->send(function ($serv, $task_id, $data) { $this->result = $data; }); return $this; } } ``` 每次從對象池中獲取對象的時候調用init方法進行初始化。 ## 框架中的對象池 框架中Controller,Model以及協成任務等都是使用了對象池技術,所以大家應該明白為什么盡量不要在__construct函數中書寫自己的代碼,因為并不是每次使用對象都會調用__construct,只會在new的使用調用__construct方法,也就是說在__construct中聲明的參數在整個生命周期里都有效。 ## 監控 2.7.0版本提供了對象池的監控大家可以訂閱'$SYS/SD-1/status'來獲取對象池的實時狀態,SD-1是本機節點的名稱。當然你還可以直接訂閱‘$SYS/#’來獲取所有監控。 VIP用戶可以獲取一個可視化的監控后臺來實時觀察對象池狀態。
                  <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>

                              哎呀哎呀视频在线观看