DatagramSocket.send线程是否安全?

Sha*_*iul 14 java concurrency datagram thread-safety

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

谢谢!

Bra*_*ncy 9

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

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


use*_*421 8

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

  • 但它真的保证java包装器是线程安全的吗?我想不是. (4认同)
  • 我不明白你的论点.例如,未指定SimpleDateFormat更改任何对象中的任何状态.但是每个人都知道 - 它不是线程安全的. (2认同)