Нет, ваш код не является потокобезопасным.
Между временем, когда вызывается connections.poll()
, и временем, когда количество соединений сравнивается с максимальным, какой-то другой поток мог освободить или принять соединение, а число соединений могло измениться.
Более того, вы дважды опрашиваете очередь, чтобы получить одно соединение.
Примечание: почему вы изобретаете велосипед? Есть много свободных подключений.