gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 12:55:07 25 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

https://zguide.zeromq.org/docs/chapter2/#Multithreading-with-ZeroMQ

Don’t share ZeroMQ sockets between threads. ZeroMQ sockets are notthreadsafe. Technically it’s possible to migrate a socket from onethread to another but it demands skill. The only place where it’sremotely sane to share sockets between threads are in languagebindings that need to do magic like garbage collection on sockets.

关于multithreading - 在多线程环境中使用 ZMQ 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36956024/

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