函式名稱:parallel\Future::done()
適用版本:PHP 7.2.0 及以上版本
函式描述:該函式用於註冊一個回撥函式,當並行任務(parallel task)完成時,自動呼叫該回撥函式。
用法:
建立一個並行任務物件:
$future = new parallel\Future(function() { // 並行任務的程式碼邏輯 // 可以是一個函式、方法或閉包 });
註冊一個回撥函式:
$future->done(function($result) { // 並行任務完成後執行的回撥函式 // $result 是並行任務的結果 });
示例:
$future = new parallel\Future(function() {
// 模擬一個耗時的並行任務
sleep(3);
return "Task completed!";
});
$future->done(function($result) {
echo $result; // 輸出:Task completed!
});
// 執行並行任務
$future->start();
// 其他的程式碼邏輯
echo "Other code...";
// 等待並行任務完成
$future->wait();
在上面的示例中,我們建立了一個並行任務物件 $future
,並透過建構函式傳入一個匿名函式作為並行任務的程式碼邏輯。然後,我們使用 done()
方法註冊了一個回撥函式,當並行任務完成時,該回撥函式會被自動呼叫,並將並行任務的結果作為引數傳入。在示例中,我們將結果輸出到螢幕上。
注意:在使用 done()
方法註冊回撥函式之前,必須先呼叫 start()
方法執行並行任務,然後再呼叫 wait()
方法等待並行任務完成。