[Java多线程] LinkedBlockingQueue

java.util.concurrent包下的新类。LinkedBlockingQueue就是其中之一,是一个阻塞的线程安全的队列,底层采用链表实现。

LinkedBlockingQueue

LinkedBlockingQueue构造的时候若没有指定大小,则默认大小为Integer.MAX_VALUE,当然也可以在构造函数的参数中指定大小

  • 创建一个线程池,队列基于LinkedBlockingQueue
lazy val executor =  new ThreadPoolExecutor(20, 20, 0L, TimeUnit.MILLISECONDS,
      //基于阻塞队列,大小设置为100
      new LinkedBlockingQueue(100),
      //拒绝策略,当队列满了之后,又达到了max size,将会将任务提交到主线程中进行处理
      new ThreadPoolExecutor.CallerRunsPolicy()
    )
    // println(s"THREADS = $THREADS")
    // Executors.newFixedThreadPool(THREADS)
  }
posted @ 2018-07-16 20:06  枫叶maple  阅读(1458)  评论(0编辑  收藏  举报