已采纳回答 / 天启之魂
没看到你别的代码,也没看这个题目,不知道具体问题, 但是就你出现的那个问题,notify是唤醒线程池中的任意一个线程,当你的读和取都有多个线程时,有使用的同一个锁,确实会造成死锁,JDK1.5 java.util.concurrent.locks 包中提供了更方便的灵活的解决办法 java.util.concurrent.locks包下 Lock接口:代替了同步代码块或者同步函数,将同步的隐式锁操作变为了显示操作,而已可以加上多个监视器,Condition接口中signal();唤醒锁上指定监...
2015-10-11
已采纳回答 / 淡彩Sone
run方法只是方法体里是你需要执行的业务逻辑。while(true)当然条件为真,那么循环必定永远执行下去。跑不出去?对啊!思路没错的,里面条件为真的循环一直在走,那么run就没有走到方法体最后一行的机会,那么run方法永远不结束,线程也不会结束。你说的是课程里那个能量守恒吧?时间在变,能量在变,所以以现实世界的逻辑套用到程序,那么就是一个永久的执行过程,没有停止的,除非宇宙大爆炸?那也不一定,炸完了能量转移了也不一定,也还没完。。。
2015-08-27
最新回答 / 王醒醒ok
Thread.sleep(1000); 让线程休眠1s这个是捕捉InterruptedException中断异常,处理是e.printStackTrace(); 将捕捉到的中断异常信息打印出来
2015-08-12
最新回答 / 拿笔小馨
主线程影响其它线程的执行进度,怎么会改变其它线程的interrupt状态,而且我也试了下,主线程的sleep只影响当前线程的interrupt状态,也就是说,线程影响其本身的interrupt状态,如果在main线程中调用Thread.sleep(),Thread是指主线程,影响执行进度;如果在子线程中调用Thread.sleep(),Thread是指当前线程,也就是子线程,等价于Thread.currentThread().sleep();额,其实只是个人理解,不知道对与不对,这就是我的理解,如果你要问...
2015-08-01