Максимальное время ожидания в исполнителе пула потоков очереди

#java #multithreading

Вопрос:

Есть ли способ установить ограничение по времени для каждого запроса из очереди в пул?

У меня есть класс, который наследует ThreadPoolExecutor

 public class TaskPool extends ThreadPoolExecutor {

public TaskPool (int initialCountOfThreads, int maxPollSize) {
    super(initialCountOfThreads, maxPollSize, 100, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(150));
  }
 

Я добавляю задачи в пул потоков

 TaskPool taskPool = new TaskPool(2, 50);
for (int i = 0; i < 50000000; i  ) {
    task = new Task("Test"   i);
    taskPool.execute(task);
}
 

И все задачи, которые находятся в очереди, находятся там до тех пор, пока она не заполнится, а точнее, до 150, и я хочу, чтобы задачи в очереди были удалены через некоторое время, если они не включены в пул

 com.company.example.TaskPool@2d6a9952[Running, pool size = 50, active threads = 48, queued tasks = 150, completed tasks = 7430]