yield():让出CPU的执行权,进入就绪状态,不会释放锁;
sleep():线程休眠,但不会释放锁;
notify():对锁无影响,线程只有在synchronized同步代码执行完成后,才会释放锁,
所以,notify系列方法一般都是在synchronized同步代码的最后一行。
wait():会释放当前线程所持有的锁,而且当被唤醒后,会重新去竞争锁,锁竞争到后才会执行wait方法后面的代码。
yield():让出CPU的执行权,进入就绪状态,不会释放锁;
sleep():线程休眠,但不会释放锁;
notify():对锁无影响,线程只有在synchronized同步代码执行完成后,才会释放锁,
所以,notify系列方法一般都是在synchronized同步代码的最后一行。
wait():会释放当前线程所持有的锁,而且当被唤醒后,会重新去竞争锁,锁竞争到后才会执行wait方法后面的代码。