用户工具


并发库的核心原理

常用的数据结构

LinkedBlockingQueue

  • 作用:线程间传递数据。一般用于协调生产者、消费者的处理速度
  • 特性:队列满时,生产者阻塞;队列空时,消费者阻塞。
  • 是否阻塞:阻塞

CountDownLatch

  • 作用:等待特定数量的资源被消费完毕
  • 特性:只能使用一次。
  • 是否阻塞:阻塞

SynchronousQueue

  • 作用:线程间传递数据
  • 特性:生产的消息必须被消费。才能退出阻塞。队列长度为0
  • 是否阻塞:阻塞

LinkedTransferQueue

  • 作用:线程间传递数据
  • 特性:生产的消息必须被消费。才能退出阻塞。队列长度无限
  • 是否阻塞:阻塞,非阻塞,超时等待。且性能比SynchronousQueue好

Semaphore

  • 作用:信号量计数
  • 特性:指定某个资源最多同时被多少人消费。其他人等待 (等待分:公平,不公平)
  • 是否阻塞:阻塞