我不熟悉併發編程,並且一直在處理具有要處理的項目隊列的代碼,這會傳遞給某些工作線程,即由用戶指定的編號。目前,我只是試圖用兩個工作線程加上主線程來完成它。在Java中使用多個線程
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類,我已經嘗試了通過創建兩個新線程調用它:
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);
}
我不知道這是否正確,或將因任何benfit等待連接?謝謝你的幫助。
我覺得Sarconi會從首先理解線程中受益 – MadcoreTom
我有一點看線程池,但這個練習似乎有點複雜。哦,我用了一個Vector,因爲它是同步的。我沒有意識到它已經過時了。 – drunkmonkey
來自C++開發,我可以肯定地說,不要使用'Vector',只是爲了心理一致性。並不是說它更好,只是這可能是海報使用它的原因。 – jli