15

のインスタンスを使用し、異なるスレッドからそのsendDatagramSocketメソッドを呼び出すことを計画しています... UDP パケットを異なるクライアントに送信します。メソッドはスレッド セーフですか。つまり、別のスレッドからこのメソッドを呼び出しても、問題、矛盾、競合状態は発生しませんか?

ありがとう!

4

3 に答える 3

8

UDP は、データグラムが無傷で到着することを保証します (もしあったとしても)。つまり、送信側でマルチスレッドが使用されていても、インターリーブはあり得ません。それだけです。実際にはスレッドセーフは必要ありません。ただし、C の send() システム コールは、アトミックであるため、すべてのシステム コールと同様にスレッド セーフです。

于 2013-05-12T00:50:59.120 に答える