java多线程之队列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java多线程之队列相关的知识,希望对你有一定的参考价值。

1.注:先不看阻塞与否,这ReentrantLock的使用方式就能说明这个类是线程安全类。 

2.线程安全的类,BlockingQueue,ConcurrentLinkedQueue。这些都是线程安全的集合类

在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。

注:什么叫线程安全?这个首先要明确。线程安全的类 ,指的是类内共享的全局变量的访问必须保证是不受多线程形式影响的。如果由于多线程的访问(比如修改、遍历、查看)而使这些变量结构被破坏或者针对这些变量操作的原子性被破坏,则这个类就不是线程安全的。
今天就聊聊这两种Queue,本文分为以下两个部分,用分割线分开: 

    • BlockingQueue  阻塞算法
    • ConcurrentLinkedQueue,非阻塞算法

以上是关于java多线程之队列的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程之线程池

java多线程之自定义消息队列

Java多线程通信之wait()和notify()方法

JAVA多线程之AQS

Java面试之多线程

Java面试之多线程