首页 > 试题广场 >

请描述BlockingQueue的原理和特点

[问答题]
请描述BlockingQueue的原理和特点
阻塞队列解决了多线程中,高效安全“传输”数据的问题。
    
    阻塞队列的最常使用的例子就是生产者消费者模式。
    
    当队列中没有数据的情况下,消费者端的所有线程都会被自动阻塞(挂起),直到有数据放入队列。
    当队列中填满数据的情况下,生产者端的所有线程都会被自动阻塞(挂起),直到队列中有空的位置,线程被自动唤醒。
    
    特点:当将数据入队的时候,如果队列满了,则线程会被阻塞,队列出现空余时,线程被唤醒,并加入数据。
          当从队列中读取数据的时候,如果队列为空,线程会被阻塞,直至队列出现数据,线程才被唤醒,并读取数据。
    
    BlockingQueue的实现有五种:
        ArrayBlockingQueue
        LinkedBlockingQueue
        PriorityBlockingQueue
        SynchronousQueue
        DelayQueue
发表于 2022-03-16 11:14:59 回复(0)
BlockingQueue是一个带阻塞的队列
Blocking是一个接口,同jdk的接口Quene兼容,但是增加了阻塞功能
发表于 2021-03-27 09:49:35 回复(0)