Wolfram 언어

채널 프레임워크

다수 대 1 통신과 다수 대 다수 통신

다수 대 1 통신 채널로 수신하기 시작합니다.

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

여러 세션 (예를 들어, 동일 시스템의 병렬 커널)에서 채널에 메시지를 보냅니다.

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

수신된 메시지를 살펴봅니다.

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

수신 및 송신된 메시지의 다이어그램을 봅니다.

전체 Wolfram 언어 입력 표시하기
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]=

여러 병렬 커널 세션에서 동일한 채널로 수신하기 시작합니다.

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

모든 병렬 커널이 각각의 ID를 채널로 보내도록 합니다.

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

각각의 커널 ID와 함께 수신기에 의해 수신된 메시지를 봅니다.

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

통신 다이어그램을 알아 봅니다.

전체 Wolfram 언어 입력 표시하기
In[9]:=
Click for copyable input
ParallelEvaluate[$KernelID -> l["Message", All]]; Graph[Flatten[Thread /@ %], VertexShape -> spikey, VertexSize -> .5]
Out[9]=

관련 예제

de en es fr ja pt-br ru zh