论坛首页 Java企业应用论坛

最简单高效的tryLock

浏览 18516 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-09-25  
asme2u 写道
有判断语句,不光只有一条修改语句
大致是这样的意思:
if(l.tryLock()) {
  if(!busyFlag) {
    busyFlag = true;
  }

  l.unlock();
}

那个标志是个volatile

  看来你领悟的奥义了。
0 请登录后投票
   发表时间:2010-09-25  
mercyblitz 写道
asme2u 写道
有判断语句,不光只有一条修改语句
大致是这样的意思:
if(l.tryLock()) {
  if(!busyFlag) {
    busyFlag = true;
  }

  l.unlock();
}

那个标志是个volatile

  看来你领悟的奥义了。

呵呵,谈不上领悟,到是确实没注意到也没用到b1=!b2这样的情况,所以没明白为什么你说volatile也还存在问题
0 请登录后投票
   发表时间:2010-09-25  
asme2u 写道
mercyblitz 写道
asme2u 写道
有判断语句,不光只有一条修改语句
大致是这样的意思:
if(l.tryLock()) {
  if(!busyFlag) {
    busyFlag = true;
  }

  l.unlock();
}

那个标志是个volatile

  看来你领悟的奥义了。

呵呵,谈不上领悟,到是确实没注意到也没用到b1=!b2这样的情况,所以没明白为什么你说volatile也还存在问题


volatile 只能保证可见,不能保证原子

你在try finally块保证了原子

我猜他是这个意思
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics