加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

01-Java并发体系-线程池

发布时间:2020-12-15 07:28:57 所属栏目:Java 来源:网络整理
导读:一、好处 1 、通过重复利用已创建爱的线程降低线程创建和销毁造成的消耗: 降低资源消耗 2 、当任务到达时,任务可以不需要等到线程就能立即执行: 提高响应速度 3 、进行统一分配、调优和监控: 提高线程的可管理性 ? 二、 Excutor 1 、 Executors :静态工

一、好处

1、通过重复利用已创建爱的线程降低线程创建和销毁造成的消耗:降低资源消耗

2、当任务到达时,任务可以不需要等到线程就能立即执行:提高响应速度

3、进行统一分配、调优和监控:提高线程的可管理性

?

二、Excutor

1Executors:静态工厂类,提供了ExecutorExecutorServiceScheduledExcutorServiceThreadFactoryCallable等类的静态工厂方法。

2ThreadPoolExecutor

2.1、参数含义

corePoolSize:线程池中核心线程的数量

maximumPoolSize:线程池中允许的最大线程数

keepAliveTime:线程空闲的时间

unitkeepAliveTime的单位

workQueue:用来保存等待执行任务的阻塞队列

  》使用的阻塞队列【ArrayBlockingQueueLinkedBlockingQueueSynchronousQueuePriorityBlockingQueue

threadFactory:用于设置创建线程的工厂、DefalutThreadFactory

handlerRejectedExecutionHandler,线程池的拒绝策略

》分类:

1AbortPolicy:直接抛出异常,默认策略

2CallerRunsPolicy:用调用者所在的线程来执行任务

3DiscardOldestPolicy:丢弃阻塞队列中靠最前的任务,并执行当前任务

4DiscardPolicy:直接丢弃任务

2.2、线程池分类

2.2.1newFixedThreadPool:可重用固定线程数的线程池

》分析:

1corePoolSizemaximumPoolSize一致

2、使用无界队列LinkedBlockingQueue

3maximumPoolSizekeepAliveTimeRejectedExecutionHandler 无效

2.2.2newCachedThreadPool:使用单个worker线程的Executor

》分析:

1corePoolSizemaximumPoolSize被设置为1

2、使用LinkedBlockingQueue做为workerQuue

2.2.3newSingleThreadExecutor:会根据需要创建新线程的线程池

》分析:

1corePoolSize被设置为0

2maximumPoolSize被设置为Integer.MAX_VALUE

3SynchronousQueue作为WorkerQueue

4、如果主线程提交任务的速度高于maximumPool中线程处理任务的速度时,CachedThreadPool会不断创建新线程,可能会耗尽CPU和内存资源

2.3、任务提交

2.3.1Executor.execute()

2.3.2ExecutorService.submit()

2.4、任务执行》执行流程

2.5、线程池调优》两种模型

2.6、线程池监控

3ScheduledThreadPoolExecutor

3.1、继承自ThreadPoolExecutor

3.2、给定的延迟之后运行任务,或者定期执行任务

3.3、内部使用DelayQueue来实现,会把调度的任务放入DelayQueue中。DelayQueue内部封装PriorityQueue,这个PriorityQueue会对队列中的ScheduledFutureTask进行排序

?

三、Future 异步计算

1、提供操作

1.1、执行任务的取消

1.2、查询任务是否完成

1.3、获取任务的执行结果

2FutureTask

2.1、实现RunnableFuture接口,既可以作为Runnable被执行,也可以作为Future得到Callble的返回值

2.2、内部基于AQS实现

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读