DatagramSocket.send线程是否安全?

时间:2013-05-11 14:38:22

标签: java concurrency thread-safety datagram

我打算使用DatagramSocket的实例并从不同的线程调用其send方法...将UDP数据包发送到不同的客户端。方法线程是否安全,即从不同的线程调用此方法不会产生任何麻烦/不一致/竞争条件?

谢谢!

2 个答案:

答案 0 :(得分:8)

是。这只是本机操作系统上的一个薄层,它是线程安全的。

请参阅此处http://www.velocityreviews.com/forums/t150685-is-datagramsocket-thread-safe.html

答案 1 :(得分:7)

UDP保证数据报完好无损(如果有的话)。换句话说,即使发送方存在多线程,也不会有交错。这就是你所需要的。你实际上并不需要线程安全。但是,C send()系统调用与所有系统调用一样是线程安全的,因为它们是原子的。