线程中yield()、sleep()、wait()、notify()对锁有何影响?

1.yield()
yield()方法仅仅只是让出cpu的执行权,并不会将锁让出,不会释放。

2.sleep()
sleep()方法也不会将锁让出,不会释放,当我们的线程休眠后,必须等待线程休眠过后,其他线程才可以拿到锁

3.wait()
wait()方法被调用后会释放自己的锁,当被唤醒的时候会继续去竞争锁

4.notify()/notifyAll()
notify())/notifyAll()  方法不会释放锁,只有同步代码块的业务执行完成后才会释放锁,一般该方法放在代码最后一行

上一篇:python中生成器的使用


下一篇:多线程 Thread.yield 方法到底有什么用?