NetMQ
複数のスレッドが同時に使用していない限り、複数のスレッドからソケットにアクセスしても安全ですか?
たとえば
、次のシナリオは問題ありませんか。
- スレッド
A
はソケットを使用します。 - スレッド
A
が終了します。 - スレッド
B
は同じソケットを使用します。
そうでない場合
、唯一の操作スレッドは、ソケットを作成したのとまったく同じでなければなりませんか?
NetMQ
複数のスレッドが同時に使用していない限り、複数のスレッドからソケットにアクセスしても安全ですか?
たとえば
、次のシナリオは問題ありませんか。
A
はソケットを使用します。A
が終了します。B
は同じソケットを使用します。そうでない場合
、唯一の操作スレッドは、ソケットを作成したのとまったく同じでなければなりませんか?
技術的にはできます。ただし、実際に同時に使用されていないことをどのように保証できますか? 複数のスレッドからソケットを使用する場合は、ロックを使用することをお勧めします。NetMQQueue も見てください。これは新しく、文書化されておらず、エンキューのみに対してスレッドセーフです。ポーラーでポーリングできるため、NetMQ ソケット間の同期スレッドを解決するのに役立つ場合があります。
https://github.com/zeromq/netmq/blob/master/src/NetMQ.Tests/NetMQQueueTests.cs