生产者/消费者模型是否等于Actor?
所以最近我一直在阅读大量关于并发编程如何困难的文章,以及如何使用共享状态进行并发编程几乎是不可能的。 所以像Erlang这样的语言(我认为这是对的,如果不是问题仍然有意义)使用Actor模型来实现并发性并且在线程之间没有共享状态。 现在,在编写并发系统的时候,我并没有发现并发性很难 - 但总的来说,我几乎可以将任何问题都纳入生产者/消费者范例,并且没有太多(如果有的话)共享状态。 虽然这是正确的? 线程之间的消息队列是否实际共享状态? 或者并发编程的生产者/消费者模型真的是Actor模型的具体例子(这是我真正的问题)。 思考?
从技术上讲,共享消息代表了总体应用程序的状态,但只有生产者和消费者本身是无状态的(否则它们只是代表消息共享媒介/ a的状态)。 生产者/消费者模型并不是每个生产者和消费者都是演员模型的例子。 生产者(也可能是消费者,无论是来自相同的共享消息队列还是来自外部源)都会按照自己的操作行事,并吐出一些排队等待的消息。 队列本身可以被认为是演员,尽管是被动的,因为它可以接收/保存消息,并且可以分发它们(或者等待它们被拿走)。 消费者是他们从共享队列中接收/接收消息的角色,并根据这些消息开展工作。
所以基本上我的回答是生产者/消费者模型不是Actor模型的例子,而是一个在共享环境中工作的Actor集合的例子。
链接地址: http://www.djcxy.com/p/21505.html