Это на самом деле не имеет ничего общего с UDP. Документация для MulticastSocket
не говорит, что она потокобезопасна, поэтому вы не можете предполагать, что она потокобезопасна. Вы не можете знать, что он не обновляет внутренние структуры (например, исходящий буфер), которые могут быть повреждены при одновременном доступе.
Если все потоки используют один и тот же экземпляр MulticastSaocket
, вы 'Я хочу убедиться, что они не вызывают одновременно его методы. Вы можете сделать это достаточно легко, синхронизировавшись с экземпляром:
synchronized (theSocket) {
theSocket.send(/*...*/);
}