while(writeable)
{
try{
wait();
System.out.println("aaaaa");
}
catch(..)
{..}
}为什么书上说wait一定要放在while循环中,线程不是运行到wait()就不动了吗?一直到notify().
那个输出语句只输出一次还是不停输出?
{
try{
wait();
System.out.println("aaaaa");
}
catch(..)
{..}
}为什么书上说wait一定要放在while循环中,线程不是运行到wait()就不动了吗?一直到notify().
那个输出语句只输出一次还是不停输出?
解决方案 »
- Excel宏操作
- 一道java基础题,大家试试。
- Java菜鸟问个低级问题 急用!
- 欢迎大家积极参与JAVA电子杂志调查,给我们杂志提供宝贵意见
- 请问连接SqlServer的连接池怎么那么慢?各位大虾帮帮忙,不尽感激
- 小第要做一个项目,建立一个自动EMAIL回复机,详细的请进来看,拿个高手曾经做个这方面的项目,可以进来给个想法.
- chatapplet not inited问题
- 真的被她给烦死了?都几天了,还摆不平。。。
- jdbc(thin)连ORACLE816问题!求救!!!!
- 登录时点击忘记密码如何通过邮箱找回
- getContentPane()编译报错“无指针错误”,请高手指教阿
- 请推荐几本java的书籍
试想下 如果不用while 你想让等待的线程恢复工作时就没办法了 明白死琐吧还有其实不是运行到wait()就不动了 而是当此线程1运行到wait()的时候就进入等待状态 别的优先高的继续运行 当等待的线程满足条件后 它会继续它没完成的工作 只是暂时的进入休眠
还有一些大哥不要用那种口吻误导人了
如果要是需要这样做的话那么不等于自己些个wait()函数差不多了。你哪本书看到的?!告诉大家,我们别买!
wait()需要放大同步块或者同步函数中,也就是楼上说的synchronized中
线程的run函数执行完后线程就退出了。所以一般在run函数中用while循环。
在你的代码中,线程每被notify一次就打印aaaaaa
如果不用while 线程被notify一次就退出了。当线程的目的为不断轮讯,刷新,查询等时就不符合要求了。
如果加确认,那么用while循环就是最简单的办法