La classe parallel\Runtime

(0.8.0)

Objets d'exécution

Chaque exécution représente un seul thread PHP, le thread est créé (et initialisé) lors de la construction. Le thread attend ensuite que des tâches soient planifiées : les tâches planifiées seront exécutées FIFO puis le thread reprendra l'attente jusqu'à ce que d'autres tâches soient planifiées, ou qu'il soit fermé, tué ou détruit par les règles de portée normales des objets PHP.

Avertissement

Lorsque qu'une exécution est détruite par les règles de portée normales des objets PHP, elle exécutera d'abord toutes les tâches qui ont été planifiées, et bloquera pendant ce temps.

Amorçage d'exécution

Lorsqu'une nouvelle exécution est créée, elle ne partage pas de code avec le thread (ou le processus) qui l'a créée. Cela signifie qu'elle n'a pas les mêmes classes et fonctions chargées, ni le même chargeur automatique défini. Dans certains cas, une exécution très légère est souhaitable car les tâches qui seront planifiées n'ont pas besoin d'accéder au code du thread parent. Dans les cas où les tâches ont besoin d'accéder au même code, il suffit de définir un chargeur automatique comme amorçage.

Note:

Le préchargement peut être utilisé en conjonction avec parallel, dans ce cas le code préchargé est disponible sans amorçage

Synopsis de la classe

final class parallel\Runtime {
/* Créer */
public __construct(string $bootstrap)
/* Exécuter */
public run(Closure $task): ?Future
public run(Closure $task, array $argv): ?Future
/* Joindre */
public close(): void
public kill(): void
}

Sommaire