首先确定下wait和sleep的属于的对象,wait属于Object,sleep属于Thread。
线程调用sleep方法后,线程让出CPU,但是监控状态依然保持,也就是说,没有让出锁,当sleep时间结束后,线程会变成可运行的状态,
wait的方法调用必须在同步代码块中,调用wait方法后,线程让出cpu,释放锁,进入等待队列,当调用notify之后,线程进入对象锁定池。
总结一下,sleep不释放锁,wait释放锁。
首先确定下wait和sleep的属于的对象,wait属于Object,sleep属于Thread。
线程调用sleep方法后,线程让出CPU,但是监控状态依然保持,也就是说,没有让出锁,当sleep时间结束后,线程会变成可运行的状态,
wait的方法调用必须在同步代码块中,调用wait方法后,线程让出cpu,释放锁,进入等待队列,当调用notify之后,线程进入对象锁定池。
总结一下,sleep不释放锁,wait释放锁。