函式名稱: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中仍處於實驗性階段,建議在生產環境中謹慎使用。