Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitToSoumet une tâche à un worker spécifique pour exécution

Description

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

Soumet la tâche au worker spécifié dans le Pool. Les travailleurs sont indexés à partir de 0, et n'existera que si le pool a besoin de les créer (puisque les threads sont générés paresseusement).

Liste de paramètres

worker

Le worker où empiler la tâche, indexé à partir de 0.

size

La tâche, pour exécution

Valeurs de retour

L'identifiant du Worker qui a accepté la tâche.

Exemples

Exemple #1 Soumission d'une tâche à un worker spécifique

<?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()); // empilez toutes les tâches sur le premier worker
}

$pool->submitTo(1, new Task()); // Impossible d'empiler la tâche sur le deuxième worker car il n'existe pas encore

$pool->shutdown();
?>

L'exemple ci-dessus va afficher :

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