gpt4 book ai didi

multithreading - 在ZeroMQ中从多个线程到zmq_poll()一个REP套接字+ send()安全吗?

转载 作者:行者123 更新时间:2023-12-03 12:08:56 24 4
gpt4 key购买 nike

我想知道是否允许ZeroMQ REP 套接字在一个线程中的传入数据上被poll()编码,并用于从另一个线程发送数据。

我要遵循的想法如下:
只要REP套接字没有发送对传入请求的答复,它就不会接收任何内容。因此,如果为这样的套接字调用了zmq_poll(),它将被阻塞(直到超时或永远)。

现在,尽管此套接字是用于传入数据的zmq_poll()调用的一部分,但是如果另一个线程准备了一个答复并使用此套接字发送此答复,会发生什么情况。

这样做是否安全?是否可以进行比赛?

最佳答案

ZeroMQ已建立在一些准则的基础上。

零共享是这些核心准则之一。

尽管用户可以自己承担风险进行共享实验,但ZeroMQ最佳实践避免这样做,除非很少且非常具体的情况且不在套接字级别。套接字是已知的不是线程安全的,因为它具有更高的整体性能和更低的延迟。

这就是为什么问题“如果另一个线程...会发生什么”听起来合理的原因,而不是在ZeroMQ最佳实践区域的范围之内。

关于multithreading - 在ZeroMQ中从多个线程到zmq_poll()一个REP套接字+ send()安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46655162/

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