Я ищу реализацию пула потоков, которая не будет ждать, когда в пуле не будет сразу же доступно ни одного потока, и вместо этого либо прибегнет к последовательному выполнению, либо как-то еще сообщит вызывающей стороне, что некоторым задачам, запланированным для выполнения, придется подождать пока пул потоков не вернет потоки, которые в данный момент заняты.
Эффект net, которого я пытаюсь достичь, состоит в параллельном выполнении, когда это возможно, и когда пул потоков полностью заполнен, выполняет оставшиеся задачи последовательно в текущем потоке. - то есть, когда была сделана попытка планирования - не дожидаясь, пока пул потоков вернет другой поток.
Хотя это кажется выполнимым, я все же чувствую, что сделать это правильно - значительный объем работы - возможно, в основном для тестирования - мудро, убедившись, что все угловые случаи правильно рассмотрены, и т. д. c).
Я бы хотел не изобретать велосипед заново, если эта поддержка легко доступна в той или иной форме в одном из JDK. связанный с потоками libr Все классы.
Если бы некоторые другие широко известные библиотеки, такие как Guava или Apache Commons, предлагали такую функциональность, мне было бы любопытно знать об этом тоже.