我目前正在处理一段使用非常有趣的设计模式的继承代码。
代码被分成许多对象。我不确定术语对象是否适用,因为它是C代码,但它是最好的类比。每个对象都有特定于对象的数据,一个线程和一个消息队列。所有对象主要通过将预定义的消息放置到彼此的队列上来进行通信。主要想法似乎是每个对象的数据只能由一个线程访问。在做了一些研究之后,我发现一些工业自动化应用程序是用这种方式编写的(即ProfiNET堆栈和一些EIP实现)。
您知道这个模式是否有名称,或者它是否在文献中描述?面向模式的软件架构" Schidt的书,Stal等人没有提到它。
非常感谢。
答案 0 :(得分:2)
这听起来与Actor model有些相关。
答案 1 :(得分:0)
可能是我,但除了生产者消费者与你所描述的内容中使用的互斥之外,还有其他任何模式吗?
答案 2 :(得分:0)
查看Communicating Sequential Processes (CSP)
CSP允许根据组件流程描述系统 独立运作,互相交流 通过消息传递通信
它实际上是Go language基于communicating between goroutines(并发)的核心设计概念之一。