呼び出し可能なスレッドに優先順位を割り当てる必要があるスレッドタスクに取り組んでいます。
これが私のコードです。
public void processURL(String[] synchronous, String[] asynchronous) {
ExecutorService es = Executors.newFixedThreadPool(NTHREADS);
for (int i = 0; i < asynchronous.length; i++) {
es.execute(new TaskAsyn("Asynchronous Task: " + i, asynchronous[i],
waiting));
}
List<Future<ToStore>> futures = new ArrayList<Future<ToStore>>();
for (int i = 0; i < synchronous.length; i++) {
Future<ToStore> future = es.submit(new TaskSynch(
"synchronous Task: " + i, synchronous[i], waiting));
futures.add(future);
}
for (Future<ToStore> future : futures) {
try {
ToStore s = future.get();
// TODO
System.out.println("Synchronous Task: " + s.getUrl()
+ " has finished.");
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
System.out.println("here");
}
後で結果を取得するために、呼び出し可能なスレッドで同期が実行されます。実行可能なスレッドで実行される非同期。
非同期の呼び出し可能スレッドも作成できますが、重要ではありません。そのため、ExecuterService
スレッドに優先順位を付けて割り当てられるようにする方法が私の唯一の問題です。