简介-潍坊达内负责整理
在引入线程池之前,我们先来了解几个事情:
线程的创建和销毁是有代价的,如线程创建需要时间和相关计算资源。如果在Web服务器上为每个来到的请求都创建一个线程,而大多数请求都是轻量级的处理过程。那么创建线程的代价与请求处理的代价相比就非常大了,导致影响整体性能。
当线程数量达到能让CPU忙绿起来的时候,此时再创建线程,线程也基本处于闲置状态,这时候多出来的线程除了占用内存外,还可能因为与其他线程争用CPU资源导致出现其他性能开销
在可创建线程的数量上存在一个限制,如果超过这个限制,可能会抛出
异常。
这时候如果能出现一个东西能够对线程的生命周期进行管理,对现有的线程重复利用,并且能够以一种简单的方式将任务的提交与执行相解耦。没错,这就是线程池(Thread Pool),在要了解Java中的线程池,首先必须了解
这个类。
详解
类中有四个重载的构造函数,每个构造函数都必须指定上表中的前5个参数,最后两个参数可以随意指定,不指定的话构造函数会使用默认的线程工厂和饱和策略:
线程工厂
线程池创建线程都是通过的ThreadFactory的Thread newThread(Runnable r)方法来创建的。
日夜有会问,说代数差的就可以学编程吗?看看超多人一直有这类设问,回答这些不足问题以前,咱就可以明白一些数学题:两地相差400米。辛翰从A地以1米每秒的速度向B地走,蒋希恩从B地以每秒1米的速度向a走。请问:他们多久后相见?
相见的地方离B地有多远?这就是一道易明白初中数学题,潍坊达内培训告诉我们,可是对于代数不好的人,可能要想好多时间。可是目前编程并不需用你把算计结果写出来,你需要用到知晓他的原理思维就行。其实要我,要用编程来达到上面的不足问题,你只需要用到明白个相比易明白的代数概论︰即加、减、乘、除和求余就行,目前和会背公式有像。

超多人没学习编程的人,都认为代数不好,无法成为程序猿。目前代数跟编程的相干就可以总结为:精代数者,不可能会编程,不略懂代数,也能学习编程,如欲精编程,必精代数,若已略懂代数者,学编程不难也。
所以,代数不好也一样就可以学编程,可是会比代数好的人难,要有很大的坚韧,以前就是要多去提升本人的原理和总结力量。
从上面可以看出默认线程工厂创建出的是一个非守护、优先级为Thread.NORM_PRIORITY 的线程。如果想要自己定制线程工厂满足需求,只需实现ThreadFactory接口的Thread newThread(Runnable r)方法。
饱和策略
中的ThreadPoolExecutor类提供了4种不同的RejectedExecutionHandler实现:
默认的饱和策略,该策略抛出未检查(运行时异常)的
不执行任何操作,直接抛弃任务
在调用者线程中执行该任务
丢弃阻塞队列中的第一个任务, 然后重新将该任务交给线程池执行
以上就是潍坊达内给大家做的内容详解,更多关于UI的学习,请继续关注潍坊达内