首页 > 编程知识 正文

java线程池实现原理,线程池创建线程的过程

时间:2023-05-06 11:46:19 阅读:144348 作者:1088

在说明线程池的一些优点之后,创建线程池。 在开始之前,必须学习创建时使用的参数。 这里以ThreadPoolExecutor的方法为例。 简要介绍了七个参数属性的概念和用法,并通过实例演示了ThreadPoolExecutor如何创建线程池。

1 .创建参数

线程池可以自动创建,也可以手动创建。 将反映在每个可以灵活设置线程池的参数中。

corePoolSize :线程池中的核心线程数。 简言之,即使线程池中没有任何任务,corePoolSize个线程也在等待任务。

maximumPoolSize:的最大线程数。 无论提交多少个任务,线程池中的最大工作线程数都是maximumPoolSize。

keepAliveTime:线程的生存时间。 如果线程池中的线程数大于corePoolSize,则在等待keepAliveTime时无法执行任务,线程将终止。

unit :用于指定keepAliveTime的此单位,如秒:TimeUnit.SECONDS。

7个静态属性TimeUnit.DAYS; //日

TimeUnit.HOURS; //小时

TimeUnit.MINUTES; //分钟

TimeUnit.SECONDS; 每秒

TimeUnit.MILLISECONDS; //毫秒

TimeUnit.MICROSECONDS; //微妙

TimeUnit.NANOSECONDS; //纳秒

工作队列:已提交任务所在的块队列:

ArrayBlockingQueue;

LinkedBlockingQueue;

同步队列;

threadFactory :创建线程的线程工厂。 主要用于命名线程,默认工厂线程名称: pool-1-thread-3。

处理程序:拒绝策略。 当线程池中的线程已耗尽且队列也已满时调用。

2 .创建实例publicthreadpoolexecutor (intcorepoolsize,

int maximumPoolSize,

长期保持活动时间,

时间单元单元,

阻塞队列工作队列) {

this(corepoolsize,maximumPoolSize,keepAliveTime,unit,工作队列,

Executors.defaultThreadFactory (,defaultHandler );

}

以上是ThreadPoolExecutor在java中创建线程池的方式。 需要掌握基本参数的使用方法。 掌握后,可以尝试创建线程的代码部分,以验证线程的学习结果。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。