1
私は現在、「プログラミングエリクシール」本を働いて、そしてちょうど並行的に実施し、「マップ」のこの例を見つけています:エリクサーの並列マップアルゴリズム
defmodule Parallel do
def pmap(collection, fun) do
me = self
collection
|> Enum.map(fn (elem) ->
spawn_link fn -> (send me, { self, fun.(elem) }) end end)
|> Enum.map(fn (pid) ->
receive do { ^pid, result } -> result end
end)
end
end
コードへのコメントは言う:「どのように注意してください受信ブロック内の^pid
を使用して、各PIDの結果を順番に取得します。これがなければ、結果はランダムな順序で返されます。 "誰かがこれを明確にすることはできますか?
私はこれがドキュメントにあったことを知っていますが、私の宿題をしましたが、本当にその概念を理解することはできませんでした。問題は解決しました、ありがとう! – sixFingers