查詢

Pool::shutdown()函式—用法及示例

「 停止並銷燬一個池物件 」


函式名稱:Pool::shutdown()

適用版本:PHP 7.0.0及以上版本

函式說明:Pool::shutdown() 方法用於停止並銷燬一個池物件。當呼叫此方法時,會等待所有正在執行的任務完成後再停止池,並釋放所有資源。

用法示例:

<?php
class MyWorker extends Threaded {
    public function run() {
        // 在此處執行任務的程式碼
        echo "執行任務" . PHP_EOL;
    }
}

$pool = new Pool(4, MyWorker::class);

for ($i = 0; $i < 10; $i++) {
    $pool->submit(new MyWorker());
}

// 等待所有任務執行完成
$pool->shutdown();

echo "所有任務執行完畢" . PHP_EOL;
?>

在上面的示例中,我們建立了一個名為MyWorker的自定義執行緒類,該類繼承自Threaded。在run()方法中,我們可以編寫具體的任務邏輯。然後,我們建立了一個Pool物件,指定了執行緒池的大小為4,並將MyWorker類作為執行緒的類名。

接下來,我們使用一個迴圈提交10個任務到執行緒池中。最後,我們呼叫shutdown()方法來停止並銷燬執行緒池。在呼叫shutdown()方法之後,會等待所有任務執行完成,然後輸出"所有任務執行完畢"。

請注意,Pool類和Threaded類是PHP多執行緒擴充套件(pthreads擴充套件)提供的功能,需要在PHP編譯時啟用--enable-pthreads選項。此外,執行緒池和多執行緒在PHP中仍處於實驗性階段,建議在生產環境中謹慎使用。

補充糾錯
上一個函式: PharData::delMetadata()函式
下一個函式: Pool::resize()函式
熱門PHP函式
分享連結