gpt4 book ai didi

java - Java同步函数生成的代码

转载 作者:太空宇宙 更新时间:2023-11-04 06:17:07 25 4
gpt4 key购买 nike

我真的看不出执行之间的差异

public void foo_fct( Table Tbl, Account act)
{
synchronized(Tbl) {
...
}
}

还有这个:

public void foo_fct( Table Tbl, Account act)
{
synchronized(act) {
...
}
}

我的意思是,在幕后,JVM 必须使用 lock() 和unlock() 我猜?所以无论发生什么(act 或 Tbl)我都会以同样的方式锁定不是?

更新好的,在您的帮助和 Java 文档下我现在明白了:

“...每个对象都有一个与其关联的内在锁...”

“同步语句...”

最佳答案

是的,这是有区别的,因为您永远不知道哪些其他线程正在 TableAccount 上使用 sychronized

问自己一个问题 - 在 foo_fct 方法中的 sychronized block 执行期间,您是否试图阻止 TableAccount 上的其他可变操作?

关于java - Java同步函数生成的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27945912/

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