Multithreading 在多线程环境中使用ZMQ的正确方法?

Multithreading 在多线程环境中使用ZMQ的正确方法?,multithreading,zeromq,jzmq,Multithreading,Zeromq,Jzmq,我的程序使用ZMQ进行通信。也就是说,服务器(C++,linux)创建一个XPUB套接字,然后在一个线程中读取它,在另一个线程中发布数据(写入) 客户机(java、jzmq、linux)创建一个子套接字,并使用它进行订阅 一段时间后,服务器端在读取线程中接收SIGABRT 什么可能是问题的根源?在不同线程中读/写或创建XPUB/子对 如果问题是在多线程中,那么使用XPUB套接字的正确范例是什么? 不要在线程之间共享ZeroMQ套接字。ZeroMQ套接字不可用 线程安全。从技术上讲,从一个套接字迁

我的程序使用ZMQ进行通信。也就是说,服务器(C++,linux)创建一个XPUB套接字,然后在一个线程中读取它,在另一个线程中发布数据(写入)

客户机(java、jzmq、linux)创建一个子套接字,并使用它进行订阅

一段时间后,服务器端在读取线程中接收SIGABRT

什么可能是问题的根源?在不同线程中读/写或创建XPUB/子对

如果问题是在多线程中,那么使用XPUB套接字的正确范例是什么?

不要在线程之间共享ZeroMQ套接字。ZeroMQ套接字不可用 线程安全。从技术上讲,从一个套接字迁移一个套接字是可能的 线到另一个,但它需要技巧。这是唯一的地方 远程sane在线程之间共享套接字的语言为 需要像套接字上的垃圾收集那样发挥魔力的绑定


StackOverflow鼓励通过MCVE代码的约定来制定高质量的问题,以演示所问的问题。不这样做只会让其他人有所猜测。请随时用这样的MCVE代码更新帖子。ZeroMQ在构建分布式(非共享)和智能共享(中央)上下文()方面都很出色-实例制作的套接字可扩展正式通信原型丰富的信令/消息传递层,但询问是什么导致了我的一些代码部署中的
SIGABRT
,更适合千里眼站点,而不是一个知识社区,好吗?答案可能是这样的