java sleep/wait/yield

2018-08-22  本文已影响0人  verk

sleep()方法是Thread类里面的,主要的意义就是让当前线程停止执行,让出cpu给其他的线程,但是不会释放对象锁资源以及监控的状态,当指定的时间到了之后又会自动恢复运行状态。

wait()方法是Object类里面的,主要的意义就是让线程放弃当前的对象的锁,进入等待此对象的等待锁定池,只有针对此对象调动notify方法后本线程才能够进入对象锁定池准备获取对象锁进入运行状态。调用当前sychronise锁对象的wait方法,即可放弃该锁。

notify和notifAll可以通知其他在等待的线程,唤醒。

名称 调用方式 作用 是否释放锁 备注
sleep Thread.sleep() 让出CPU
wait Object.wait() 让出CPU 当前线程必须获取锁之后才能调用wait方法
yield Thread.yield() 线程Running状态转变为Runnable状态
上一篇 下一篇

猜你喜欢

热点阅读