所以最近我读了很多关于并发编程的文章,关于并发编程的困难,以及共享状态的并发编程几乎是不可能的。因此,像Erlang这样的语言(我认为这是开启的,如果不是,这个问题仍然有意义)使用Actor模型来实现并发,并且线程之间没有共享状态。现在,在我编程并发系统的时间里,我还没有发现并发是那么难的--但一般来说,我可以将几乎任何问题放入生产者/消费者范式中,并且生活在没有太多(如果有的话)共享状态的情况下。虽然这是正确的吗?线程之间的消息队列实际上是共享状态吗?或者并发编程的生产者/消费者模型真的是Actor模型的具体示例(这才是我真正的问题)。有什么想法?
发布于 2011-08-10 03:18:59
从技术上讲,共享消息表示总体应用程序的状态,但前提是生产者和消费者本身是无状态的(否则,它们只表示消息共享媒体/a的状态)。生产者/消费者模型并不像每个单独的生产者和消费者那样是参与者模型的示例。生产者(也可能是消费者,来自相同的共享消息队列或来自外部来源)做他们所做的事情,并输出一些排队的消息。队列本身可以被认为是一个参与者,尽管它是被动的,因为它接收/保存消息,并可以分发它们(或者只是等待它们被获取)。使用者是参与者,因为它们从共享队列获取/接收消息,并基于这些消息进行工作。
因此,基本上我的回答是,生产者/消费者模型不是Actor模型的示例,而是在共享环境中工作的Actor集合的示例。
https://stackoverflow.com/questions/7001588
复制相似问题