[Java多线程] LinkedBlockingQueue

Posted INEFFABLE LAND

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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)
  }

以上是关于[Java多线程] LinkedBlockingQueue的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程 4.线程池

什么是JAVA的多线程?

Java多线程 1.认识Java线程

Java多线程 5.栅栏

java 如何实现多线程

java中啥叫做线程?啥叫多线程?多线程的特点是啥