Я хочу создать свой собственный ExecutorService на Java, который может «отправить (вызываемая задача)» заданную задачу. Я намеревался использовать пул потоков, состоящий из нескольких «Threads (Runnable target)». Идея состоит в том, чтобы создать фиксированное количество потоков, которые удаляют объекты FutureTask из очереди из списка, который был заполнен методом «отправить». Объекты FutureTask также были созданы в методе отправки. Моя проблема в том, что я могу передать объект Runnable (здесь: FutureTask) потоку только при создании потока (через конструктор), но, очевидно, FutureTasks необходимо назначать потоку динамически (когда элемент удаляется из списка ). Есть какой-либо способ сделать это?
// content of submit, parameter: myTask
FutureTask<V> newFutureTask = new FutureTask<V>(myTask);
taskQueue = new BlockingQueue<FutureTask<V>>();
try {
taskQueue.put(newFutureTask);
} catch (InterruptedException ex) { }
return newFutureTask;
// remove item from list and hand it over to thread
// method within MyThread extends Thread (thread pool) class
void exec() {
FutureTask<V> task;
try {
task = taskQueue.take();
// TODO: run task somehow????
} catch(InterruptedException ex) { }
}