我有两个线程。第一个在循环中使用 MulticastSocket 发送数据报;第二个线程在循环中使用相同的 MulticastSocket 实例接收数据报。
它似乎工作正常,但我仍然有疑问。
这两个线程可以使用同一个 MulticastSocket 实例吗?MulticastSocket 在发送/接收方法调用方面是线程安全的吗?
我有两个线程。第一个在循环中使用 MulticastSocket 发送数据报;第二个线程在循环中使用相同的 MulticastSocket 实例接收数据报。
它似乎工作正常,但我仍然有疑问。
这两个线程可以使用同一个 MulticastSocket 实例吗?MulticastSocket 在发送/接收方法调用方面是线程安全的吗?
发送和接收 DatagramSocket 方法都在发送/接收数据报包上同步。换句话说,如果您使用相同的数据报包从两个不同的线程发送和接收,这两种方法将被同步,因为它们将使用相同的对象作为同步令牌。
一旦查看了DatagramSocket的源代码,就会更容易理解。