У меня есть объект QueueSet из ConcurrentSkipListSet в Java
Имейте в виду, что, в отличие от большинства коллекций, метод size не является операцией с постоянным временем. Из-за асинхронной природы этих наборов определение текущего количества элементов требует обхода элементов, и поэтому может сообщать о неточных результатах, если эта коллекция изменяется во время обхода. Кроме того, не гарантируется атомарное выполнение массовых операций addAll, removeAll, keepAll, containsAll, equals и toArray. Например, итератор, работающий одновременно с операцией addAll, может просматривать только некоторые добавленные элементы.
Проблема: в этом if(!activeQueueSet.add(queue))
есть ошибочная проверка работоспособности, но, как вы можете видеть из документации, это операция O(n), т.е. просматривается весь набор, который каким-то образом неправильно интерпретирует состояние списка довольно много раз. Я ищу надежную проверку здравомыслия по этому поводу.
size
не является операцией с постоянным временем, к проверке того, возвращает ли методadd
правильное значение? - person Brett Okken   schedule 04.08.2016