Я новичок в параллельном программировании и работаю над кодом, в котором есть очередь элементов для обработки, это передается некоторым рабочим потокам, число, указанное пользователем. На данный момент я только что попытался сделать это с двумя рабочими потоками плюс основной.
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 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);
}
Я не уверен, правильно ли это, или будет какая-то польза от ожидания присоединений? Спасибо за любую помощь.