使用无界队列的线程池会不会引起内存急剧增长?

2026-05-29 10:283阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计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为例 定长线程池,核心线程数和最大线程数由用户传入,超出在队列等待,以下为相关源码。

阅读全文