【发布时间】:2015-06-16 13:51:01
【问题描述】:
我想制作一个自动拉取 github 存储库的系统
System.cmd("git",["pull", link])
此命令是否阻塞?如果我在许多演员中同时启动它,我是否总是能够获得与演员一样多的拉动(或至少系统的套接字限制)?
如果没有,还有办法实现吗?
【问题讨论】:
标签: concurrency elixir
我想制作一个自动拉取 github 存储库的系统
System.cmd("git",["pull", link])
此命令是否阻塞?如果我在许多演员中同时启动它,我是否总是能够获得与演员一样多的拉动(或至少系统的套接字限制)?
如果没有,还有办法实现吗?
【问题讨论】:
标签: concurrency elixir
Erlang 和 Elixir IO 是非阻塞的,因此一个进程的 IO 通常不会以任何方式影响其他进程。 Joe Armstrong describes this in a blog post:
所以我们的代码“看起来”是在进行同步阻塞读取。 看起来像是在引号中,因为它实际上不是阻塞读取, 这确实是一个异步读取,不会阻塞任何其他 Erlang 进程。
【讨论】: