哪位给说一下yield(),sleep()以及wait()的区别 网上有一些,可是我运行时候经常发生异常,与文章的代码不一致。如果需要,可以追加100分 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比如 这个http://qdisb.blogbus.com/logs/223774.html看上去挺好,可是他的代码不能运行,总是报java.lang.IllegalThreadStateException 异常 参考这个,http://www.java2000.net/viewthread.jsp?tid=6223 这些挂起的函数要小心用,sleep还好点,别的就不好说了,搞不好就会引发线程安全问题。 假如只有一个厕所,有几个人都想进去上网,但是不能都同时进去吧。yield()本来你已经在用厕所了,但是你心好,你就主动让给比人用。sleep()别人正在用厕所,你很想用,你就倒数一个时间,比如10秒,到时了,你就冲进去,管他谁在用。wait()你等厕所时睡着了,就一直没去上厕所,直到有人把你叫醒。(能睡着,应该不是很急)notify()就是把你叫醒去厕所,不然容易得病。这里厕所就是一个资源,比如CPU,你就是一个线程。和你一起等厕所的是其他线程。 假如只有一个厕所,有几个人都想用,但是不能都同时进去吧。 yield() 本来你已经在用厕所,但是有人比你更急,你就主动让给比人用。 sleep() 别人正在用厕所,你很想用,你先去休息下,比如10秒,到时了,你再去看是否已经可用(不是冲进去,管他谁在用)。 wait() wait有两种,一种是wait()要等notify或者notifyall来唤醒,另一种是wait(int time)有人唤醒了或者时间到了就会停止等待。你等厕所时睡着了,就一直没去上厕所,直到有人把你叫醒。(能睡着,应该不是很急) notify() 就是把你叫醒去厕所,不然容易得病。 这里厕所就是一个资源,比如CPU,你就是一个线程。和你一起等厕所的是其他线程。aipb2008 yield() 是将线程战停,但该线程仍然是就绪状态,依然被分配时间片,随时都可运行而后2者都进入阻塞状态,没有了时间片,必须满足某种条件才可被分配时间片(进入就绪状太)sleep()这个在阻塞状态的时间,阻塞时间过了,才被分配时间片。wait() 和notify() 配对,靠notify() 从阻塞中唤醒wait(),并且只能在同步中才能使用只要分清楚阻塞状态和就绪状态就好办了 累加Map的Value [给新手看]计算器示例 两个JTABLE问题... 关于使用ADSL带来的一些疑问,高手解答 microsoft.sqlserver.jdbc java异常问题 duplicate class!请问这是个什么错误? 大家帮帮忙,看如何把image对象写入文件,存为一种具体的图象格式 与项目经理思路冲突,项目经理说一定要按他的方法实现,真不能理解,请大家帮帮忙 怎样将JTree的handle图标改掉,以及出现如下横线的效果: 对SQLState的用法我有点异想天开,不知道对不对 Calendar的问题,大家帮帮忙
http://qdisb.blogbus.com/logs/223774.html看上去挺好,可是他的代码不能运行,总是报
java.lang.IllegalThreadStateException 异常
本来你已经在用厕所了,但是你心好,你就主动让给比人用。
sleep()
别人正在用厕所,你很想用,你就倒数一个时间,比如10秒,到时了,你就冲进去,管他谁在用。
wait()
你等厕所时睡着了,就一直没去上厕所,直到有人把你叫醒。(能睡着,应该不是很急)
notify()
就是把你叫醒去厕所,不然容易得病。
这里厕所就是一个资源,比如CPU,你就是一个线程。和你一起等厕所的是其他线程。
本来你已经在用厕所,但是有人比你更急,你就主动让给比人用。
sleep()
别人正在用厕所,你很想用,你先去休息下,比如10秒,到时了,你再去看是否已经可用(不是冲进去,管他谁在用)。
wait()
wait有两种,一种是wait()要等notify或者notifyall来唤醒,另一种是wait(int time)有人唤醒了或者时间到了就会停止等待。
你等厕所时睡着了,就一直没去上厕所,直到有人把你叫醒。(能睡着,应该不是很急)
notify()
就是把你叫醒去厕所,不然容易得病。
这里厕所就是一个资源,比如CPU,你就是一个线程。和你一起等厕所的是其他线程。
aipb2008
而后2者都进入阻塞状态,没有了时间片,必须满足某种条件才可被分配时间片(进入就绪状太)
sleep()这个在阻塞状态的时间,阻塞时间过了,才被分配时间片。
wait() 和notify() 配对,靠notify() 从阻塞中唤醒wait(),并且只能在同步中才能使用
只要分清楚阻塞状态和就绪状态就好办了