La classe parallel\Channel parallel\Channel
canaux non tamponnés Un canal non tamponné bloquera les appels à parallel\Channel::send jusqu'à ce qu'il y ait un récepteur, et bloquera les appels à parallel\Channel::recv jusqu'à ce qu'il y ait un émetteur. Cela signifie qu'un canal non tamponné n'est pas seulement un moyen de partager des données entre les tâches mais aussi une méthode simple de synchronisation. Un canal non tamponné est le moyen le plus rapide de partager des données entre les tâches, nécessitant le moins de copie.
canaux tamponnés Un canal tamponné ne bloquera pas les appels à parallel\Channel::send jusqu'à ce que la capacité soit atteinte, les appels à parallel\Channel::recv bloqueront jusqu'à ce qu'il y ait des données dans le tampon.
Fermetures sur les canaux Une fonctionnalité puissante des canaux parallèles est qu'elles permettent l'échange de fermetures entre les tâches (et les runtimes). Lorsqu'une fermeture est envoyée sur un canal, la fermeture est tamponnée, cela ne change pas le tampon du canal transmettant la fermeture, mais cela affecte la portée statique à l'intérieur de la fermeture: la même fermeture envoyée à différentes exécutions, ou à la même exécution, ne partagera pas leur portée statique. Cela signifie que chaque fois qu'une fermeture est exécutée qui a été transmise par un canal, l'état statique sera tel qu'il était lorsque la fermeture a été tamponnée.
canaux anonymes La construction de canaux anonymes permet au développeur d'éviter d'attribuer des noms à chaque canal: parallel générera un nom unique pour les canaux anonymes.
&reftitle.classsynopsis; parallel\Channel final parallel\Channel Constructeur anonymes Accès Partage Fermer Constantes pour le tamponnement infini const Infinite
&reference.parallel.parallel.channel.construct; &reference.parallel.parallel.channel.make; &reference.parallel.parallel.channel.open; &reference.parallel.parallel.channel.recv; &reference.parallel.parallel.channel.send; &reference.parallel.parallel.channel.close;