Avatar notebook default
9篇文章 · 4746字 · 1人关注
  • 为什么闭锁不能复用,栅栏可以?

    从两者的设计初衷来看,闭锁是一组线程等待另外一组线程,栅栏是一组线程自等待。这样看的话,等另外一组线程对于复用来说用途没那么大。 从实现角度来讲...

  • 不可变对象&final关键字

    final关键字 修饰类,该类不可被继承 修饰方法,该方法不能被复写final方法比非final方法要快,因为在编译的时候已经静态绑定了,不需要...

  • wait/notify为什么必须synchronized包裹

    首先,jvm内部在notify与wait逻辑中都强制判断是否有对等待对象加锁,所以如下代码逻辑会抛异常 修改后的正确代码实现为: 要实现条件队列...

  • Resize,w 360,h 240
    synchronized底层实现

    java里synchronized锁分为方法锁和代码块锁两种 静态方法默认以class对象作为锁,普通方法默认以对象实例作为锁。 方法锁和代码块...

  • Resize,w 360,h 240
    线程池及其灵魂ThreadPoolExecutor

    先上类图: 各级类功能浏览 Executors工厂类,负责创建各式各样的Threadpoolexecutors出来 Executor Execu...

  • CountDownLatch分析

    1.类声明 算是最简单最简单的一个同步工具类了。。。哈哈哈 2.核心执行依旧靠Sync内部类(基本上所有工具类,包括Lock都是这个模式实现) ...

  • FutureTask分析

    这是基于jdk1.8,doc文档有注明前一个版本是基于AQS来实现阻塞等待的,1.8改为基于一个int的state来实现。使用AQS的方式,可能...

  • Semaphore分析

    1.类声明 2.依旧是主要委托Sync内部类实现 Sync抽象类 非公平模式 公平模式 3.具体的获取许可方法

  • CyclicBarrier分析

    叼逼的,我还以为用了AQS,原来没有用到。。。。叼叼叼!!!! 1.类声明 2. 类属性 3.broken标记类 为什么要用一个类标识,不直接用...

文集作者