Полагаю, вы хотите сделать то же самое, что и
Executors.newFixedThreadPool(n);
Непонятно, почему вы не используете этот пул потоков.
Похоже, вы также хотите использовать очередь в качестве пула объектов. Вы можете использовать add()
to и poll()
, чтобы узнать, доступен ли свободный элемент.