Wolfram Language

Channel-Framework

Many-to-One und Many-to-Many-Kommunikation

Hören Sie einen Kanal für many-to-one-Kommunikation.

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

Senden Sie Nachrichten von unterschiedlichen Sitzungen an den Kanal zum Beispiel von parallelen Kernels auf demselben Rechner.

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

Die empfangenen Nachrichten.

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

Ein Diagramm des Nachrichtenaustauschs.

Den kompletten Wolfram Language-Input zeigen
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]=

Hören Sie denselben Kanal mehreren parallelen Kerne-Sitzungen.

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

Lassen Sie alle Parallel-Kernels ihre jeweilige ID an den Kanal senden.

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

Die von den Listenern empfangenen Nachrichten, mit ihren jeweiligen Kernel-IDs.

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

Ein Diagramm des Austauschs.

Den kompletten Wolfram Language-Input zeigen
In[9]:=
Click for copyable input
ParallelEvaluate[$KernelID -> l["Message", All]]; Graph[Flatten[Thread /@ %], VertexShape -> spikey, VertexSize -> .5]
Out[9]=

Verwandte Beispiele

en es fr ja ko pt-br ru zh