`
paganini0102
  • 浏览: 3537 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
文章列表
上一篇文章中,我们对J.U.C的一些大概的情况做了了解,在这一篇文章我们将来以ReentrantLock为例,来分析一下锁的获取和释放的过程,让大家能够对锁的获取和释放的整体过程有一个了解。 一、锁的获取 先看下ReentrantLock的lock()方法,整个方法只有一行,调用acquire方法,看看acquire方法的实现: public final void acquire(int arg) {     if (!tryAcquire(arg) &&         acquireQueued(addWaiter(Node.EXCLUSIVE), arg))       ...
一、原子操作(atomic) 所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际 是使用了物理学里的物质微粒的概念。 原子 ...
synchronized与互斥锁mutex synchronized用来锁定某个对象,体现的是标准的互斥锁mutex的机制,synchronized代码块的开始即是lock该mutex,代码块的结束即是unlock。 Object.wait()与条件变量 Object.wait()在使用时通常要判断是否满足某个条件,不满足某个外部条件cond时调用wait(),来让线程阻塞同时释放被synchronized锁定的mutex;从这个过程看来Object.wait()实际上是起到条件变量的作用,wait()内部实际上先将synchronized锁定的锁释放,之后将当前线程阻塞在某个内置的条件cond ...
Global site tag (gtag.js) - Google Analytics