首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >二郎C端口-串行执行还是并行执行?

二郎C端口-串行执行还是并行执行?
EN

Stack Overflow用户
提问于 2015-04-25 09:04:38
回答 1查看 222关注 0票数 2

Erlang ports and thread safety

然而,对于端口,“控制进程”充当序列化(如在一个序列中排列)层,意味着请求是一个接一个地处理,而不是全部处理。此外,我认为(但不确定)通信协议端口使用的通信协议也需要串行执行。

如果我启动大量的Erlang端口进程,每个进程都连接到同一个C驱动程序上,有人知道C代码是由并行Erlang进程串联还是并行执行的吗?(我怀疑是串联的)

Thx

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-25 10:09:10

Erlang只描述通过端口进行的程序通信,而不是代码执行。虽然您有一个序列化点,并且所有的通信都通过一个参与者,但这并不意味着您不能分发一般的工作。您可以根据自己的意愿并行C程序,即使使用单个端口也是如此。

端口是作为管道实现的,这就是为什么它需要串行通信。但是你可以自由地打开很多通讯管道,它们都完全独立地工作。

这意味着您的不同端口将是独立的,所有通过独立端口进行的通信都将是并行的。

Hovewer,beam对代码运行的线程池的功率有限。每个具有端口的通信事件都将使用线程作为数据传输的时间。如果您有很多端口,并发送了大量数据,这一次可能会变得重要,因此端口将开始相互影响。在这种情况下,您可能需要增加异步线程的数量,wich用于IO和端口通信。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29863189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档