多线程 – 使用具有多线程组件的非线程安全组件(设计)
发布时间:2020-12-15 04:51:44 所属栏目:Java 来源:网络整理
导读:设计问题: 在多线程组件中使用非线程安全组件(Collection,API,…)… 示例: component1:一个多线程套接字服务器,它将消息…发送给消息处理程序 component2:从服务器处理消息的非线程安全消息处理程序 我的解决方案 在服务器和消息处理程序之间添加线程安
设计问题:
在多线程组件中使用非线程安全组件(Collection,API,…)… 示例: component1:一个多线程套接字服务器,它将消息…发送给消息处理程序 component2:从服务器处理消息的非线程安全消息处理程序 我的解决方案 在服务器和消息处理程序之间添加线程安全组件(缓冲区),缓冲区将以多线程方式从服务器接收消息,并以相同的顺序以单线程方式将它们发送到消息处理程序. 我的问题 : 有更好的解决方案吗?适当的设计模式可能是代理还是管道? 解决方法
一个非常好的选择是使用
Producer/Consumer模式.
在这种情况下,多线程套接字可以充当保护缓冲区中的多个生成器,并且非线程安全消息处理程序可以完全同步地在其自己的线程中使用消息.这提供了一种非常干净的方式来处理这种类型的场景. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |