cavaliers37 2016-11-11 03:35 采纳率: 0%
浏览 891
已结题

关于java的synchronized问题

看了一段程序,大概是spring定时任务,自动执行一段代码,为了线程安全加了锁。
贴一段代码:
List> hashMapList = null;
IsCompleteClient isCompleteClient = new IsCompleteClient();
synchronized (mutexLock) {
hashMapList = isCompleteClient.notifyResult();
}
想知道锁一个空的mutexLock对象的目的是什么?
不应该是:
IsCompleteClient isCompleteClient = new IsCompleteClient();
synchronized (isCompleteClient) {
list = isCompleteClient.notifyResult();请问两种写法有什么区别?

  • 写回答

3条回答 默认 最新

  • Zedee 2016-11-11 03:41
    关注

    http://www.cnblogs.com/devinzhang/archive/2011/12/14/2287675.html
    里面说到了

    上面的这个例子比原文给出的例子要好一些,因为原文中的加锁是针对类定义的,一个类只能有一个类定义,而同步的一般原理是应该尽量减小同步的粒度以到达更好的性能。笔者给出的范例的同步粒度比原文的要小。

    评论

报告相同问题?

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘