PHP Conference Japan 2024

Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitTo將任務提交到指定的 worker 以執行

說明

public Pool::submitTo(int $worker, Threaded $task): int

將任務提交到池中指定的 worker。worker 的索引從 0 開始,並且只有在池需要建立它們時才會存在(因為執行緒是延遲生成的)。

參數

worker

要將任務堆疊到的 worker,索引從 0 開始。

task

要執行的任務。

回傳值

接受任務的 worker 的識別碼。

範例

範例 #1 將任務提交到指定的 worker

<?php
class Task extends Threaded {
public function
run() {
var_dump(Thread::getCurrentThreadID());
}
}

$pool = new Pool(2);

$pool->submit(new Task());

for (
$i = 0; $i < 5; ++$i) {
$pool->submitTo(0, new Task()); // 將所有任務堆疊到第一個 worker 上
}

$pool->submitTo(1, new Task()); // 由於第二個 worker 尚不存在,因此無法將任務堆疊到其上

$pool->shutdown();

以上範例將輸出

int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)

Fatal error: Uncaught Exception: The selected worker (1) does not exist in %s:%d

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top