Elixir 并发编程:进程基础与应用
1. 并行映射函数
通过一些快捷方式,我们可以实现一个并行映射函数。具体操作是将集合传递给 Enum.map/2 函数,并包装 Task.async/1 函数。最后等待整个集合处理完成,将结果返回给调用者。
在交互式会话中,我们可以这样执行:
iex(1)> import_file "pmap.exs"
{:module, MyMap,
<<70, 79, 82, 49, 0, 0, 6, 64, 66, 69, 65, 77, 69, 120, 68, 99, 0,
0, 0, 133, 131, 104, 2, 100, 0, 14, 101, 108, 105, 120, 105, 114, 95,
100, 111, 99, 115, 95, 118, 49, 108, 0, 0, 0, 2, 104, 2, ...>>,
{:pmap, 2}}
iex(2)> MyMap.pmap(1..10000, &(&1 * &1))
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256,
289, 324,
361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961,
1024, 1089,
1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764,
超级会员免费看
订阅专栏 解锁全文
44

被折叠的 条评论
为什么被折叠?



