java面试题之wait(),notify()和suspend(),resume()之间的区别

wait()方法和notify()方法的区别:

这两个方法都是属于Object类中的,也是配套使用的,当调用这两个方法阻塞时要释放占用的锁,而锁是任何对象都具有的,调用任意对象的wait()方法导致线程阻塞,并且该对象上的锁被释放;

而调用任意对象的notify()方法则导致从调用该对象的wait()方法而阻塞的线程中随机选择一个解除阻塞

 

suspend()方法和resume()方法区别:

这两个方法配套使用,suspend方法使得线程进入阻塞状态,并且不会自动恢复,必须其对应的resume方法被调用,才能使得线程重新进入可执行状态。

 

yield方法:使当前线程放弃当前已经分得的CPU时间,但不使当前线程阻塞,即线程仍处于可执行状态,随时可能再次分的CPU时间。调用yield方法的效果等价于调度程序认为该线程已执行了足够的时间从而转到另一个线程

posted @ 2019-01-03 01:45  胡金水  阅读(1308)  评论(0编辑  收藏  举报