摘要:
一 . 概述 在之前我们介绍了CountDownLatch和CyclicBarrier两个类. 其中,CountDownLatch是凑足信号量启动一个线程运行,而CyclicBarrier是凑够信号量将原先阻塞的线程全部启动. 现在我们需要介绍一个信号量类 Semaphore. 说到信号量,大家都不 阅读全文
摘要:
一 . 概述 在之前我们说到了CountDownLatch,现在要说的这个CyclicBarrier和CountDownLatch差不多. 我们通过类的结构慢慢分析. 二 . 类的结构 构造函数一: 需要一个int值表示需要参与的线程数量 这个构造函数多了一个Runnable的线程任务,这个构造函数 阅读全文
摘要:
一 .概述 在前面我们时候说到了使用Condition实现线程的精确控制,但是我们在日常使用的时候我们发现我们的并发总是有一些规律. 比如在某些线程完成任务之后,该线程才开始,这样的场景总是并发场景中经常出现的. 为此,JUC提供了并发的辅助类帮助我们简化这种线程并发场景的实现. 二 . Count 阅读全文
摘要:
一 . 概述 在之前我们我们线程之间进行通信使用的是内置锁的wait()方法和notify()实现的,而我们使用了高级锁之后,就可以使用Condition进行条件控制, 通过精确的控制我们能够完成更简单的线程控制. 二 .Condition的使用 下面我们定义三个线程,让他们按照次序进行输出. 我们 阅读全文