求教sleep() sleep()是怎么样控制线程的?sleep()的工作原理?线程sleep后,进入等待(是让出CPU,持有资源吗?)sleep结束后,应该是进入就绪态的啊,怎么会马上就入运行态呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sleep就是让本线程暂停运行,进入休眠,但是不会释放资源,这跟wait不一样,wait会释放资源或者锁sleep结束后,确实应该是进入就绪态的啊,不会马上运行,等到线程执行者让他运行的时候才运行 sleep()、suspend()、resume()方法不推荐使用,推荐使用wait()、notify()、notifyAll()。 1.sleep()方法介绍 sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非 (a)醒来的线程具有更高的优先级。 (b)正在运行的线程因为其它原因而阻塞。 2.wait()方法介绍 wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。 当调用wait()后,线程会释放掉它所占有的锁标志,从而使线程所在对象中的其它synchronized数据可被别的线程使用。 3.waite()和notify()的区别 waite()和notify()因为会对对象的“锁标志”进行操作,所以它们必须在synchronized函数或synchronized block中进行调用。如果在non-synchronized函数或non-synchronized block中进行调用,虽然能编译通过,但在运行时会发生IllegalMonitorStateException的异常。 关于wait-notify请参见本人的博文:http://blog.csdn.net/lw_china/article/details/6855049 为什么会出现nullpointexception 错误? a = -3; a>>5; 对于右移,左边的符号位怎么办?? 急,坐等答案 下面的程序为什么输出abdcbdcb而不是abdcabdc呢? 高人们帮忙分析一下这段代码哪里出错了!!! 400分求操作数据库增删改的DEMO--3 java简单问题!初学,望大哥们指教! 回车与换行的区别 为什么把javax.json放在J2EE里面? super 问题 java连接mysql为什么用delete删不掉记录啊??? 关于程序挂起功能的面向对象设计
sleep结束后,确实应该是进入就绪态的啊,不会马上运行,等到线程执行者让他运行的时候才运行
(b)正在运行的线程因为其它原因而阻塞。
2.wait()方法介绍 wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。 当调用wait()后,线程会释放掉它所占有的锁标志,从而使线程所在对象中的其它synchronized数据可被别的线程使用。 3.waite()和notify()的区别 waite()和notify()因为会对对象的“锁标志”进行操作,所以它们必须在synchronized函数或synchronized block中进行调用。如果在non-synchronized函数或non-synchronized block中进行调用,虽然能编译通过,但在运行时会发生IllegalMonitorStateException的异常。