gpt4 book ai didi

Java同步问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:48:02 25 4
gpt4 key购买 nike

我是 Java 线程和同步的新手。

假设我有:

public class MyClass(){

public synchronized void method1(){
//call method2();
}

public synchronized void method2(){};

}
  1. 当我在实例对象上同步 method1() 时,这意味着什么?那么,当一个线程在尝试访问 synchronized method1() 时获取锁时,是否会阻止其他线程从同一对象访问另一个 synchronized method2()

  2. 假设一个线程在访问 method1() 时获得了一个锁,但是假设 method1() 调用了 method2(),这也是同步。这可能吗?我的意思是,是否有任何规则可以阻止 method1() 调用 method2()

提前致谢。

最佳答案

  1. 是的,在非静态方法上使用 synchronized 方法修饰符意味着它使用调用该方法的实例的监视器,并且它在所有此类方法之间共享。
  2. 否 - 线程已经拥有监视器,因此可以自由进入受同一监视器保护的其他 block 。

关于Java同步问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3691685/

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