gpt4 book ai didi

multithreading - 将非线程安全组件与多线程组件一起使用(设计)

转载 作者:行者123 更新时间:2023-12-04 08:26:16 28 4
gpt4 key购买 nike

设计问题:

使用 非线程安全 组件(集合,API,...)在/带有 多线程成分 ...

例子 :

组件 1 :多线程套接字服务器谁向消息处理程序发送消息...

组件 2 :非线程安全 消息处理程序 谁处理消息......来自服务器

我的解决方案:

在服务器和消息处理程序之间添加一个线程安全组件( 缓冲区 ),缓冲区将接收 中的消息。多线程从服务器的方式并将它们发送到 同一个订单 中的消息处理程序单线程方式。

我的问题 :

有更好的解决方案吗?合适的设计模式可能是 代理管道 ?

最佳答案

一个非常好的选择是使用 Producer/Consumer图案。

在这种情况下,多线程套接字可以充当 protected 缓冲区中的多个生产者,并且您的非线程安全消息处理程序可以完全同步地在其自己的线程中使用消息。这提供了一种非常干净的方法来处理这种类型的场景。

关于multithreading - 将非线程安全组件与多线程组件一起使用(设计),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1953869/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com