私は並行プログラミングに不慣れで、処理される項目のキューを持つコードに取り組んでいます。これは、ユーザーが指定した数のワーカースレッドに渡されます。現時点では、2つのワーカースレッドとメインでそれを実行しようとしました。
private static class workerThread extends Thread {
workerThread(){
super();
}
public void run(){
while (!workQueue.isEmpty()) {
String x = workQueue.remove();
//System.out.println("work queue size: " + workQueue.size());
Vector<String> list2 = new Vector<String>((Vector) table.get(x));
list2 = process(x, list2);
//System.out.println(list2 + "list2");
table.put(x, list2);
//System.out.println(x + "key" + "value" + vvv);
}
}
これがスレッドworkerthreadクラスです。2つの新しいスレッドを作成するだけで、このクラスを呼び出そうとしました。
workerThread wt = new workerThread();
workerThread wt2 = new workerThread();
wt.start();
wt2.start();
try {
wt.join();
wt2.join();
} catch (InterruptedException ex) {
Logger.getLogger(includeCrawler.class.getName()).log(Level.SEVERE, null, ex);
}
これが正しいかどうかわかりませんか、それとも参加を待っているために何かメリットがありますか?助けてくれてありがとう。