繁体   English   中英

多线程共享一个套接字

[英]Multiple Threads Sharing One Socket

我有一个场景,其中多个线程需要在一个套接字上与外部系统进行通信。 每个线程的消息可以由唯一的ID标识。 在所有线程共享同一套接字的情况下,我可以使用blockQueues吗? 由于线程可以产生请求并消耗响应,因此我可以让持有套接字的单例组件说“ Socketer”并具有两个BlockQueues(传入和传出)。 传出队列上的任何消息都写在套接字上,套接字上的任何消息都发送到传入队列。 套接字程序还维护所有生产者线程的哈希表,并且在读取响应时,它将标识相应的生产者并将响应移交给它。

请提出是否正确的设计方法或提出改进建议。 我的线程实际上是WebServices,并且我在Spring环境中。

谢谢

我不明白为什么需要哈希表,但是每个线程确实需要一个响应队列。 您可以将正确的响应队列嵌入到请求消息中。

但是,您确定无法打开与外部系统的多个连接吗? 这会使您的生活简单得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM