Java基础知识——Java线程池



导语



Java基础知识——Java线程池,随着互联网的发达,越来越多人开始投身于计算机编程行业,今天由杭州中公教育的小编为大家带来Java线程池的相关知识,供大家参考




Java线程池

多线程是为了能够让计算机资源合理的分配,对于处理不同的任务创建不同的线程进行处理,但是计算机创建一个线程或者销毁一个线程所花费的也是比较昂贵的,有时候需要同时处理的事情比较多,就需要我们频繁的进行线程的创建和销毁,这样花费的时间也是比较多的。为了解决这一问题,我们就可以引用线程池的概念。

所谓线程池就是将线程集中管理起来,当需要线程的时候,可以从线程池中获取空闲的线程,这样可以减少线程的频繁创建与销毁,节省很大的时间和减少很多不必要的操作。

在java中提供了ThreadPoolExecutor类来进行线程的管理,这个类继承于AbstractExecutorService,而AbstractExecutorService实现了ExecutorService接口,我们可以使用ThreadPoolExecutor来进行线程池的创建。

在ThreadPoolExecutor的构造方法中,有多个参数,可以配置不同的参数来进行优化。这个类的源码构造方法为:

public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)其中每个参数代表的意义分别为

corePoolSize : 线程池中的核心线程数量,当线程池中当前的线程数小于这个配置的时候,如果有一个新的任务到来,即使线程池中还存在空闲状态的线程,程序也会继续创建一个新的线程放进线程池当中

maximumPoolSize: 线程池中的线程最大数量

keepAliveTime:当线程池中的线程数量大于配置的核心线程数量(corePoolSize)的时候,如果当前有空闲的线程,则当这个空闲线程可以存在的时间,如果在keepAliveTime这个时间点内没有新的任务使用这个线程,那么这个线程将会结束,核心线程不会结束,但是如果配置了allowCoreThreadTimeOut = true,则当空闲时间超过keepAliveTime之后,线程也会被结束调,默认allowCoreThreadTimeOut = false,即表示默认情况下,核心线程会一直存在于线程池当中。

unit : 空闲线程保持连接时间(keepAliveTime)的时间单位

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

threadFactory :线程工厂,可以根据自己的需求去创建线程的对象,设置线程的名称,优先级等属性信息。

handler:当线程池中存在的线程数超过设置的最大值之后,新的任务就会被拒绝,可以自己定义一个拒绝的策略,当新任务被拒绝之后,就会使用hander方法进行处理。

在java中也提供了Executors工具类,在这个工具类中提供了多个创建线程池的静态方法,其中包含newCachedThreadPool、newFixedThreadPool、newScheduledThreadPool、newSingleThreadExecutor等。但是他们每个方法都是创建了ThreadPoolExecutor对象,不同的是,每个对象的初始 参数值不一样;

以上就是Java线程池的基础知识,如果如果你还想更详细的了解Java相关内容可以点击主页

更多培训课程,学习资讯,课程优惠,课程开班,学校地址等学校信息,请进入 昆明中公优就业IT培训中心 昆明中公优就业IT培训中心 你也可以留下你的联系方式,让课程老师跟你详细解答 4006-303-880 在线咨询
预约申请试听课程

只要一个电话,我们免费为您回电

推荐课程
学习资料

关于我们 | 联系我们 | 咨询电话:4006-303-880

汇上优课 招生合作 版权/投诉

川ICP备07505283号

 以上信息知识产权归“昆明中公优就业IT培训中心”所有,并对内容的真实性和合法性负责,如有侵权或投诉,请联系我们处理。

汇上优课 昆明培训 昆明中公优就业IT培训中心 学习资料 Java基础知识——Java线程池

首页

在线咨询

拨打电话

在线留言

还没有找到合适的课程?赶快告诉课程顾问,让我们顾问马上联系您! 靠谱的培训课程,省时又省力!

还没有找到合适的课程?赶快告诉课程顾问,让我们顾问马上联系您! 靠谱的培训课程,省时又省力!