Wolfram Language

Cadre de canaux

Communication de plusieurs à un et de plusieurs à plusieurs

Commencez à écouter un canal de communication plusieurs-à-un.

In[1]:=
Click for copyable input
listener = ChannelListen["master"]
Out[1]=

Envoyez des messages au canal de plusieurs sessions, par exemple, à partir de noyaux parallèles sur la même machine.

In[2]:=
Click for copyable input
ParallelEvaluate[ChannelSend["master", $KernelID]]
Out[2]=

Les messages reçus.

In[3]:=
Click for copyable input
listener["Message", All]
Out[3]=

Un schéma d'échange de messages.

Afficher l'entrée complète de Wolfram Language
In[4]:=
Click for copyable input
spikey = ImageCrop@ Import["http://www.wolfram.com/spikey/img/spikey.png"];
In[5]:=
Click for copyable input
Graph[Table[i \[DirectedEdge] 0, {i, listener["MessageID", All]}], VertexShape -> spikey, VertexSize -> .5]
Out[5]=

Commencez à écouter sur le même canal dans plusieurs sessions parallèles du noyau.

In[6]:=
Click for copyable input
ParallelEvaluate[l = ChannelListen["all"]]
Out[6]=

Laissez tous les noyaux parallèles envoyer leurs identifiants respectifs au canal.

In[7]:=
Click for copyable input
ParallelEvaluate[ChannelSend["all", $KernelID]]
Out[7]=

Les messages reçus par les auditeurs, avec leurs numéros d'identification respectifs du noyau.

In[8]:=
Click for copyable input
ParallelEvaluate[$KernelID -> l["Message", All]]
Out[8]=

Un schéma de l'échange.

Afficher l'entrée complète de Wolfram Language
In[9]:=
Click for copyable input
ParallelEvaluate[$KernelID -> l["Message", All]]; Graph[Flatten[Thread /@ %], VertexShape -> spikey, VertexSize -> .5]
Out[9]=

Exemples connexes

de en es ja ko pt-br ru zh