« Pool::submit
Volatile »

Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitTo — Submits a task to a specific worker for execution

説明

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

Submit a task to the specified worker in the pool. The workers are indexed from 0, and will only exist if the pool has needed to create them (since threads are lazily spawned).

パラメータ

worker

The worker to stack the task onto, indexed from 0.

task

The task for execution.

戻り値

The identifier of the worker that accepted the task.

例

例1 Submitting tasks to a specific 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()); // stack all tasks onto the first worker
}

$pool->submitTo(1, new Task()); // cannot stack the task onto the second worker due to it not existing yet

$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
関連キーワード:
worker   task   pool   Pool   submitTo   specific   execution   Task   Submits   stack   onto   submit   Threaded   indexed   exist   tasks   Volatile   pthreads   Submit   specified   workers   needed   create   them   since
関連する関数・ページ:
pool.submit   pool.shutdown   class.pool   swoole-server.task   pool.collect   pool.construct