pthreads Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitTo — 실행을 위해 특정 작업자에게 작업 제출


설명

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

풀의 지정된 worker에게 작업을 제출합니다. worker는 0부터 인덱싱되며 풀이 생성에 필요한 경우에만 존재합니다(스레드가 느리게 생성되기 때문에).


매개변수

worker
0부터 인덱싱된 작업을 쌓을 worker입니다.
task
The task for execution.

반환 값

작업을 수락한 worker의 식별자입니다.


Examples

예제 #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