Итак, у меня есть этот код, который добавляет мой исполняемый класс «NamePrinter» как задачи ExecutorService. Все работает нормально, но я бы хотел избавиться от этого дополнительного класса. Поэтому я спрашиваю, есть ли способ отправить метод ExexutorService?Метод отправки в ExecutorService Java
Вот код, который я в настоящее время есть:
public void start(){
Collection<Future<?>> futures = new LinkedList<>();
final ExecutorService es = Executors.newFixedThreadPool(poolSize);
for (int i = 0; i < 10; i++) {
futures.add(es.submit(new NamePrinter(name)));
}
es.shutdown();
}
Но я хотел бы, чтобы это было что-то вроде этого:
public void start(){
Collection<Future<?>> futures = new LinkedList<>();
final ExecutorService es = Executors.newFixedThreadPool(poolSize);
for (int i = 0; i < 10; i++) {
futures.add(es.submit(namePrint(i+"name"))); // This code doesn't work, I just made it so you could understand what I mean.
}
es.shutdown();
}
public void namePrint(String name){ // I'd like this to be the task that ExecutorService runs.
System.out.println(name);
}
Является ли это то, что можно достичь?
ОК, так что это либо этот, либо другой класс? –
Это еще один класс Runnable. Это похоже на синтаксический сахар над вашим исходным кодом. –
Могу ли я использовать мои общедоступные переменные класса из этого анонимного внутреннего класса? –