全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术问答  > 详情

线程池学习需要掌握哪些知识点

匿名提问者2023-04-04

想要参加线程池学习需要掌握哪些知识点

推荐答案

  同学,您好!线程池学习需要掌握哪些知识点是每一个Java编程开发程序员都应该精通的编程知识,本文将通过案例分析的方式来简单了解线程池学习需要掌握哪些知识点。

线程池学习需要掌握哪些知识点

  创建线程池需要七个参数。

  corePoolSize:线程池中的核心线程数。 当有新的任务进来时,如果线程池中的线程数小于这个值,就会创建一个新的线程来执行任务(不管有没有空闲线程),直到线程数大于等于这个数额。

  maximumPoolSize:线程池的最大线程数(当达到核心线程数且队列任务已满时,会增加线程数到最大线程数)。

  keepAliveTime:线程最大空闲时间,大于此时间将被回收(当线程数大于核心线程数时,冗余线程的空闲时间达到此值时将被回收).

  unit:空闲时间的单位。

  workQueue:阻塞队列。 当核心线程数满了,任务就会放到这个队列中。

  threadFactory:线程工厂,线程池中的线程都是由这个线程工厂创建的,线程池提供了一个默认的线程工厂。

  处理程序:拒绝策略。当队列任务满,线程数达到最大线程数时,新进入的任务会执行这个拒绝策略,选择丢弃哪个任务。线程池提供了四种默认的拒绝策略。

  线程工厂ThreadFactor,线程池中默认给定了一个线程工厂DefaultThreadFactory。 线程工厂的作用是创建线程。 自己创建线程工厂时,需要实现ThreadFactor接口。 只有一种方法 ThreadnewThread(Runnabler); 在这个接口中,也就是create Thread方法,自定义线程工厂的好处是可以自定义线程名称。

  阻塞队列BlockingQueue,阻塞队列用于存储核心线程满后的任务。 常用的有LinkedBlockingQueue、ArrayBlockingQueue、SynchronousQueue、DelayedWorkQueue等,当阻塞队列也满了时,会创建线程,直到最大线程数。 当达到最大线程数时,执行拒绝策略。

  拒绝策略 RejectedExecutionHandler:

  DiscardPolicy:丢弃任务而不抛出异常。

  DiscardOldestPolicy:丢弃提前加入队列的任务而不抛出异常。

  AbortPolicy:任务被丢弃,抛出异常RejectedExecutionException。 默认情况下使用此策略。

  CallerRunsPolicy:当前任务由调用线程池的线程执行。

相关问答

初学Python需要安装哪些软件?

响应式布局和移动端布局有什么区别?

为什么vue比react更受欢迎?

程序员的工作可以做一辈子吗

想成为全栈工程师要会什么?

开班信息 更多>>

课程名称
全部学科
咨询

HTML5大前端

Java分布式开发

Python数据分析

Linux运维+云计算

全栈软件测试

大数据+数据智能

智能物联网+嵌入式

网络安全

全链路UI/UE设计

Unity游戏开发

新媒体短视频直播电商

影视剪辑包装

游戏原画

    在线咨询 免费试学 教程领取