【问题标题】:Accessing NetMQ sockets from multiple threads从多个线程访问 NetMQ 套接字
【发布时间】:2015-12-09 15:50:41
【问题描述】:

从多个线程访问 NetMQ 套接字是否安全,只要它们不同时使用它?

例如,
以下场景是否OK:

  1. 线程A使用套接字。
  2. 线程A结束。
  3. 线程B使用同一个socket。

如果没有,
唯一的操作线程必须与创建套接字的线程相同吗?

【问题讨论】:

    标签: c# multithreading sockets zeromq netmq


    【解决方案1】:

    技术上你可以。但是你怎么能保证它实际上不是同时使用的呢?如果您想从多个线程使用套接字,我建议使用锁。另请查看 NetMQQueue,它是新的且未记录的,仅用于入队的线程安全。它可能会帮助您解决 NetMQ 套接字之间的同步线程,因为您可以使用轮询器对其进行轮询。

    https://github.com/zeromq/netmq/blob/master/src/NetMQ.Tests/NetMQQueueTests.cs

    【讨论】:

    • 实际上,我可以使用我在项目中经常使用的 Reactive Extensions 轻松保证这一点。此外,我不需要锁来做到这一点。
    猜你喜欢
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 2013-02-26
    • 2016-12-27
    • 2012-05-17
    相关资源
    最近更新 更多