我正在研究Erlang和Go编程语言中的并发编程。根据我的发现,它们分别使用Actor模型和CSP。
但我仍然困惑于CSP和演员之间的客观区别是什么?这仅仅是理论上的不同,是同一个概念吗?
发布于 2013-08-01 13:39:58
在实践中,差别很小:两者都代表单独的执行单元,其与外部世界的主要接口是通过消息。
不同之处在于语言的实现细节。以下是一些这样的细节:
receive获取发送到进程的所有内容,并且必须与模式匹配(在Go中,您将使用一个包含多个情况的select,因此代码看起来非常相似,只是使用不同的通道)。我认为,最后一点是最重要的。虽然这两种方式都使用消息作为主要的通信手段,但Erlang对状态如何以及何时发生变化提供了更强的保证。
https://softwareengineering.stackexchange.com/questions/206784
复制相似问题