Как проверялось количество записей в очереди? Если вы вызываете size (), он всегда должен возвращать 0 или 1.
Когда очередь достигает емкости, вызов put () просто блокируется. Если у вас очень короткие задачи, это может создать иллюзию того, что в очереди находятся несколько вещей.