0
我已經開發了下面的Java代碼..關於通知特定線程deleibrately
class ThreadB extends Thread {
public int totals;
public void run() {
synchronized(this) {
for(int i=0;i<100;i++) {
totals += i;
}
notify(); //want to notify only thread b2
}
}
}
和其他類...
class ThreadA {
public static void main(String [] args) {
ThreadB b1 = new ThreadB();
b.start();
ThreadB b2 = new ThreadB();
b2.start();
ThreadB b3 = new ThreadB();
b3.start();
ThreadB b4 = new ThreadB();
b4.start();
synchronized(b) {
try {
System.out.println("Waiting for b to complete...");
b1.wait();
b2.wait(); //only b2 to be notified
b3.wait();
b4.wait();
} catch (InterruptedException e) {}
System.out.println("Total is: " + b.totals);
}
}
}
沒有請告訴我,我只想通知線程b2和b2只,我怎麼做到這一點,因爲通知線程可以拿起任何一個線程,但我只想要b2,請告知。
我認爲這會有所幫助,如果你能解釋你爲什麼要這樣做。我不確定你的代碼是否可以編譯。 – 2012-04-19 18:33:56
是啊同意,如果可能的話請在線程A中糾正,以便所有的線程都等待線程b完成,非常感謝 – dghtr 2012-04-20 02:35:51