网站制作建设,安徽建设通网站,百度云网站建设教程,西安做网站微信公司哪家好什么是线程池
线程池其实就是一种多线程处理形式#xff0c;处理过程中可以将任务添加到队列中#xff0c;然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过的线程,这里的任务就是我们前面学过的实现了Runnable或Callable接口的实例对象;
为什么使用线程池
…什么是线程池
线程池其实就是一种多线程处理形式处理过程中可以将任务添加到队列中然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过的线程,这里的任务就是我们前面学过的实现了Runnable或Callable接口的实例对象;
为什么使用线程池
使用线程池最大的原因就是可以根据系统的需求和硬件环境灵活的控制线程的数量,且可以对所有线程进行统一的管理和控制,从而提高系统的运行效率,降低系统运行运行压力;当然了,使用线程池的原因不仅仅只有这些,我们可以从线程池自身的优点上来进一步了解线程池的好处;
线程池种类
newSingleThreadExecutor 创建“单线程化线程池” 也就是只有一条线程的线程池所创建的线程池用唯一的工作线程来执行任务使用此方法创建的线程池能保证所有任务按照指定顺序(如FIFO)执行 1.单线程化的线程池中的任务是按照提交的次序顺序执行的 2.池中的唯一线程的存活时间是无限的 3.当池中的唯一线程正繁忙时新提交的任务实例会进入内部的阻塞队列中并且其阻塞队列是无界的。 总体来说单线程化的线程池所适用的场景是任务按照提交次序一个任务一个任务逐个执行的场景。 FixedThreadPool 适合使用在任务量比较固定但耗时长的任务。 ScheduledThreadPool 适合使用在执行定时任务和具体固定周期的重复任务。 SingleThreadPool 适合使用在多个任务顺序执行的场景。 newWorkStealingPool: 适合使用在很耗时的任务中
线程池参数
1 、 corePoolSize 线程池基本大小必须大于或等于 0 2 、 maximumPoolSize 线程池最大大小必须大于或等于 1 必须大于或等 等于 corePoolSize 3 、 keepAliveTime 线程存活保持时间必须大于或等于 0 4 、 unit 存活时间的单位 5 、 workQueue 任务队列不能为空 6 、 threadFactory 线程工厂不能为空默认为 DefaultThreadFactory 类 7 、 handler 线程饱和策略不能为空默认策略ThreadPoolExecutor.AbortPolicy