Java MulticastSocket线程是否安全?

我有两个主题。 第一个用循环发送MulticastSocket的数据报; 第二个线程使用循环中的MulticastSocket的相同实例接收数据报。

它似乎工作正常,但我仍然怀疑。

这两个线程可以使用MulticastSocket的相同实例吗? 在发送/接收方法调用方面,MulticastSocket线程是否安全?

发送和接收DatagramSocket方法都在发送/接收数据报包上同步。 换句话说,如果您使用相同的数据报包来从两个不同的线程发送和接收,这两个方法将被同步,因为它们将使用相同的对象作为同步令牌。

一旦查看DatagramSocket的源代码,就会更容易理解。

DatagramSocket 是线程安全的 , MulticastSocket是衍生类,因此MulticastSocket.send是线程安全的,因为访问是由synchronized块序列化的。