Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitTo将任务提交到特定工作线程以执行

描述

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

将任务提交到池中指定的 worker。工作线程从 0 开始索引,并且只有在池需要创建它们时才会存在(因为线程是按需延迟生成的)。

参数

worker

要将任务堆叠到的 worker,从 0 开始索引。

task

要执行的任务。

返回值

接受任务的工作线程的标识符。

示例

示例 #1 将任务提交到特定工作线程

<?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()); // 将所有任务堆叠到第一个工作线程上
}

$pool->submitTo(1, new Task()); // 由于第二个工作线程尚未存在,因此无法将任务堆叠到它上面

$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