gpt4 book ai didi

Java 同步调用堆栈

转载 作者:行者123 更新时间:2023-12-02 05:47:00 25 4
gpt4 key购买 nike

假设有一个 Synchronized 方法,它依次调用其他普通方法,如下所示:

public static synchronized void doSomething(){
doIt1();
}

public doIt1(){
doIt2();
}

我的问题是,当我有上面的代码并调用 doSomething() (这是一个同步方法)时,是只有这个方法被同步,还是所有后续调用的方法(如 doIt1 和 doIt2)也被同步?

最佳答案

My question is, When i have above code and when I call doSomething() which is synchronized method is only this method will be synchronized or all the subsequent methods call like doIt1 & doIt2 also get synchronized ?

仅同步调用doSomething();直接调用 doIt1() 或其他方法则不然,除非这些调用也使用某种锁定。

也就是说,如果您调用 doIt1(),JVM 不会查看此方法的调用站点并看到“哦,此方法有一个同步调用站点,所以我也将同步对此方法的访问”。

简而言之:JVM 最终假设您知道自己在做什么。

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

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