gpt4 book ai didi

java - Java : pattern or anti-pattern? synchronized 的混淆使用

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

我正在对不属于我的 Java 产品进行代码审查。我不是 Java 专家,但我强烈怀疑这是毫无意义的,并且表明对同步工作原理存在根本性的误解。

synchronized (this) {
this.notify();
}

但我可能错了,因为 Java 不是我的主要 Playground 。也许这样做是有原因的。如果您能告诉我开发人员的想法,我将不胜感激。

最佳答案

这当然不是毫无意义的,你可以让另一个线程引用包含上述代码的对象

synchronized(foo) {
foo.wait();
}

为了在有事发生时被唤醒。不过,在许多情况下,在内部/私有(private)锁对象上同步而不是 this 被认为是一种很好的做法。

但是,在同步块(synchronized block)中执行 .notify() 可能是完全错误的 - 您通常有一些工作要做并在完成时通知,这在正常情况下也需要完成原子地关于其他线程。我们必须查看更多代码才能确定它是否真的是错误的。

关于java - Java : pattern or anti-pattern? synchronized 的混淆使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7613027/

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