是Elixir的System.cmd阻塞吗?

时间:2015-06-15 17:04:43

标签: concurrency elixir

我想建立一个使用

自动提取github存储库的系统
System.cmd("git",["pull", link])

此命令是否阻止?如果我在许多演员中同时启动它,我总能获得与演员一样多的拉动(或者至少是系统的插座限制)?

如果没有,无论如何都要实现它?

1 个答案:

答案 0 :(得分:3)

Erlang和Elixir IO是非阻塞的,因此一个进程的IO通常不会以任何方式影响其他进程。 Joe Armstrong describes this in a blog post

  

所以我们的代码“看起来像”我们正在进行同步阻塞读取。   看起来像是在引号中,因为它实际上不是阻塞读取,   它实际上是一个异步读取,不会阻止任何其他Erlang   过程