gpt4 book ai didi

java - 我对同步块(synchronized block)的假设是否正确?

转载 作者:行者123 更新时间:2023-11-29 04:02:08 25 4
gpt4 key购买 nike

我有一个带有同步块(synchronized block)的方法 shout()。

  private void shout(){
System.out.println("SHOUT " + Thread.currentThread().getName());
synchronized(this){
System.out.println("Synchronized Shout" + Thread.currentThread().getName());
try {
Thread.sleep(50);
}
catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Synchronized Shout" + Thread.currentThread().getName());
}
}

如果我有两个运行此方法的线程,我是否正确地假设两个“Synchronized Shout”总是一个接一个地出现? “同步喊叫”之间不能再有其他陈述?

最佳答案

只要this引用是一样的。如果您在两个不同的对象上运行代码,锁定将无效。

请注意,如果您要在 this 上使用 Object.wait 而不是调用 Thread.sleep 来延迟,那么锁将是已删除(并在继续之前重新获取)。

关于java - 我对同步块(synchronized block)的假设是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2755969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com