AI智能
改变未来

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

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

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 调用 yield() 、sleep()、wait()、notify()等方法对锁有何影响?