[code="java"]
class ThreadB extends Thread{
int total = 0;
public void run(){
synchronized(this){
System.out.println("ThreadB is running...");
for(int i=0;i<100;i++){
total += i;
}
System.out.println("total is "+total);
//notify();
}
}
}
public class ThreadA{
public static void main(String args[]){
ThreadB b = new ThreadB();
b.start();
synchronized(b){
System.out.println("Waiting for b to complete...");
try{
Thread.sleep(3000);
b.wait();
}catch(InterruptedException e){}
System.out.println("Completed.Now back to main thread");
}
System.out.println("....Total is:"+b.total);
}
}
/*主线程先得到b的锁,执行到b.wait();的时候,主线程阻塞,释放对象锁,线程b变为运行状态,把notify()注释掉,
没有唤醒主线程,主线程为什么还能继续进行?*/
[/code]
java多线程基础
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- iteye_7333 2010-07-26 20:48关注
不能解释具体原因,只能猜测 用线程对象wait()的时候,线程对象运行完成后(run()完成退出),所以利用这个线程对象的wait()都退出等待。
写了一个例子:
[code="java"]public class ThreadAa {
public static void main(String args[]){
ThreadB1 t1 = new ThreadB1();
ThreadB2 t2 = new ThreadB2();
ThreadB3 t3 = new ThreadB3();t2.oo = t1; t3.oo = t1; t1.start(); t2.start(); t3.start(); }
}
class ThreadB1 extends Thread {
public Object oo ;
public void run() {
try{Thread.sleep(1000);}catch(Exception e) {};
// while(true) {
// try{Thread.sleep(10);}catch(Exception e) {};
// }
}
}
class ThreadB2 extends Thread {
public Object oo ;public void run() { synchronized(oo) { System.out.println("wait2"); try{oo.wait();} catch(Exception e) { System.out.println("interrupt2"); } } System.out.println("end2"); }
}
class ThreadB3 extends Thread {
public Object oo ;public void run() { synchronized(oo) { System.out.println("wait3"); try{oo.wait();} catch(Exception e) { System.out.println("interrupt3"); } } System.out.println("end3"); }
} [/code]
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 测距传感器数据手册i2c
- ¥15 RPA正常跑,cmd输入cookies跑不出来
- ¥15 求帮我调试一下freefem代码
- ¥15 matlab代码解决,怎么运行
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法