java thread wait的用法
大家看下
代码:
/**
* 计算输出其他线程锁计算的数据
*
* @author leizhimin 2008-9-15 13:20:38
*/
public class ThreadA {
public static void main(String[] args) {
ThreadB b = new ThreadB();
// 启动计算线程
b.start();
synchronized (b) {
try {
System.out.println("等待对象b完成计算。。。");
// 当前线程A等待
b.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("b对象计算的总和是:" + b.total);
}
}
}
/**
* 计算1+2+3 ... +100的和
*
* @author leizhimin 2008-9-15 13:20:49
*/
public class ThreadB extends Thread {
int total;
public void run() {
synchronized (this) {
for (int i = 0; i < 101; i++) {
total += i;
}
// (完成计算了)唤醒在此对象监视器上等待的单个线程,在本例中线程A被唤醒
notify();
}
}
}
大家看下蓝字部分,
这程序执行到篮字部分,表示什么意思哦?我不明白这样的用法
还有红字部分
b.wait()应该是让b线程释放执行权吧,那为什么还执行b线程中的代码哦?