加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

混淆使用在Java中同步:模式或反模式?

发布时间:2020-12-14 16:44:09 所属栏目:Java 来源:网络整理
导读:我正在对我不拥有的 Java产品进行更改的代码审查.我不是Java专家,但我强烈怀疑这是无意义的,并且表明对同步如何工作的根本误解. synchronized (this) { this.notify();} 但是我可能错了,因为Java不是我的主要操场.也许有一个理由这样做.如果你能启发我开发商
我正在对我不拥有的 Java产品进行更改的代码审查.我不是Java专家,但我强烈怀疑这是无意义的,并且表明对同步如何工作的根本误解.
synchronized (this) {
    this.notify();
}

但是我可能错了,因为Java不是我的主要操场.也许有一个理由这样做.如果你能启发我开发商的想法,我会很感激.

解决方法

这当然不是毫无意义的,你可以有另一个线程参考包含上述代码的对象
synchronized(foo) {
    foo.wait();
}

为了在有事情发生时被唤醒.尽管在许多情况下,在内部/私有锁定对象上进行同步而不是这种做法被认为是很好的做法.

但是,只能在同步块内做一个.notify()可能是非常错误的 – 你通常需要做一些工作,并在通常的情况下进行通知,在正常情况下,还需要对其他线程进行原子化处理.我们必须看到更多的代码来确定它是否真的是错误的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读