Почему вы повторно используете это TCP-соединение? Если его легко настроить, просто устанавливайте его каждый раз, когда вам это нужно. Например, для HTTP-запроса вы должны просто каждый раз создавать новый запрос.
Я предполагаю, что у вас есть что-то static
, которого не должно быть, поэтому несколько потоков используют его, когда все они должны иметь свою собственную версию.
Если они дорогие, рассмотрите возможность создания одного потока на ThreadLocal .
Если даже это не работает, и вы не возражаете против блокировки потоков, просто добавьте «синхронизированный» к методу, вызывающему проблему.