使用无界队列的线程池会不会引起内存急剧增长?
- 内容介绍
- 文章标签
- 相关推荐
本文共计488个文字,预计阅读时间需要2分钟。
Executors创建线程池的方式主要有以下几种:
1. Executors.newFixedThreadPool(10); // 使用LinkedBlockingQueue,无限制加入队列
2.Executors.newScheduledThreadPool(10); // 使用DelayedWorkQueue,队列满时阻塞
3.Executors.newSingleThreadScheduledExecutor(); // 单线程定时任务线程池
Executors创建线程池方式有如下几种:
Executors.newFixedThreadPool(10);//LinkedBlockingQueue 无限加入队列Executors.newScheduledThreadPool(10);//DelayedWorkQueue 队列如果满了,阻塞
Executors.newSingleThreadScheduledExecutor();//DelayedWorkQueue 队列如果满了,阻塞
Executors.newCachedThreadPool();//SynchronousQueue 队列如果满了,抛异常
Executors.newSingleThreadExecutor();//LinkedBlockingQueue 无限加入队列
本文以Executors.newFixedThreadPool为例 定长线程池,核心线程数和最大线程数由用户传入,超出在队列等待,以下为相关源码。
本文共计488个文字,预计阅读时间需要2分钟。
Executors创建线程池的方式主要有以下几种:
1. Executors.newFixedThreadPool(10); // 使用LinkedBlockingQueue,无限制加入队列
2.Executors.newScheduledThreadPool(10); // 使用DelayedWorkQueue,队列满时阻塞
3.Executors.newSingleThreadScheduledExecutor(); // 单线程定时任务线程池
Executors创建线程池方式有如下几种:
Executors.newFixedThreadPool(10);//LinkedBlockingQueue 无限加入队列Executors.newScheduledThreadPool(10);//DelayedWorkQueue 队列如果满了,阻塞
Executors.newSingleThreadScheduledExecutor();//DelayedWorkQueue 队列如果满了,阻塞
Executors.newCachedThreadPool();//SynchronousQueue 队列如果满了,抛异常
Executors.newSingleThreadExecutor();//LinkedBlockingQueue 无限加入队列
本文以Executors.newFixedThreadPool为例 定长线程池,核心线程数和最大线程数由用户传入,超出在队列等待,以下为相关源码。

