野花一片
2019-08-01 10:13
采纳率: 51.6%
浏览 2.3k
已采纳

java中Lock锁,锁定的范围是什么

当一个线程拿到Lock锁之后,其锁定的是代码块,或是方法,或是对象 吗

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • syd_no1 2019-08-02 18:29
    已采纳

    非要说是锁定的话,就是lock和unlock中间的代码段,,,这个其实可以看下ReentrantLock的源码开下,本质是基于CAS实现的乐观锁

    已采纳该答案
    打赏 评论
  • ꧁gaoKuo꧂ 2019-08-01 11:15

    什么都没有锁定,同步的是代码块.
    同步代码块的原因是lock只能被一个线程获取,当一个线程执行lock.lock()后其他线程再尝试获取会进入lock对象中的等待队列,从而达到同步效果
    所以也可以说锁定指的是一个lock只能同时被一个线程占用

    2 打赏 评论
  • 宾灬 2019-08-01 10:55

    范围不就是从加锁到释放锁的中间那段吗

    打赏 评论
  • yyjjttww 2019-08-02 14:30

    就是代码块。其他请求想要执行这个代码块会等待。

    打赏 评论

相关推荐 更多相似问题