ここに、「NamePrinter」実行可能クラスを ExecutorService タスクとして追加するこのコードがあります。すべて正常に動作しますが、その余分なクラスを取り除きたいです。ExexutorService にメソッドを送信する方法はありますか?
これが私が現在持っているコードです:
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);
}
これは達成可能なものですか?