您的位置:首页 > 大数据 > 人工智能

调用 yield() 、sleep()、wait()、notify()等方法对锁有何影响?

2020-07-14 06:31 627 查看

1.yield():该方法只是让出当前cpu的执行权,让当前线程和其他等待的线程继续去获取cpu的执行权,但是在同步代码块中调用的话,调用yield方法之后并不会马上退出代码块,而是将代码块继续执行完,所以可以得出yield方法并不会释放锁资源。
2.sleep()被调用后,都不会释放当前线程所持有的锁。
3.调用 wait()方法后,会释放当前线程持有的锁,而且当前被唤醒后,会重新
去竞争锁,锁竞争到后才会执行 wait 方法后面的代码。
4.调用 notify()系列方法后,对锁无影响,线程只有在 syn 同步代码执行完后才
会自然而然的释放锁,所以 notify()系列方法一般都是 syn 同步代码的最后一行

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐