美文网首页
SynchronousQueue

SynchronousQueue

作者: 某某程序员_ | 来源:发表于2020-02-27 10:24 被阅读0次
A synchronous queue does not have any internal capacity, not even a capacity of one
synchronous queue 

这个队列没有容量,一条也没有。
基于生产者-消费者模式,可实现同步阻塞的功能。
生产者生产数据后,如果没有消费者进行消费,那么生产者线程将会阻塞,直到有消费者消费数据。
如果消费者要消费数据,但是没有生产者生产数据,那么消费者线程将阻塞,直到有生产者生产数据。

应用:
Executors.newCachedThreadPool

public static ExecutorService newCachedThreadPool(ThreadFactory threadFactory) {
        return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
                                      60L, TimeUnit.SECONDS,
                                      new SynchronousQueue<Runnable>(),
                                      threadFactory);
    }

缓存线程池,不会有任务在队列里面。新的任务会直接去获取线程,若没有线程可用,则创建线程,直到Integer最大值2^31-1。若线程数已达到最大值且还有任务进来,将进行拒绝处理。

相关文章

网友评论

      本文标题:SynchronousQueue

      本文链接:https://www.haomeiwen.com/subject/nmjfiqtx.html