SynchronousQueue

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。若线程数已达到最大值且还有任务进来,将进行拒绝处理。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容