最开始,进程能够解决并发编程问题,但是由于频繁的创建销毁进程,使得消耗的CPU硬件资源特别多,后来引入了线程,但是线程的数量特别多,也会消耗较多的CPU硬件资源,那么就引入了
1.轻量级线程:纤程:是程序员在用户态调度,而不需要用到内核态.
2.线程池:直接创建好相应的线程,在线程使用完毕之后不直接释放线程,备下次使用
在标准库中,我们用ThreadPoolExecutor来表示线程池.
第一个参数:corePoolSize:核心线程数
第二个参数:maximumPoolSize: 最大线程数
第三个参数:保持存活的时间 , 意思就是空闲时间超过这个阈值,就会被销毁掉
第四个参数: 任务队列,可以持有多个线程任务
第五个参数:通过工厂类,或者方法来封装new操作,就叫做工厂模式
第六个参数:拒绝策略
第一个 AbortPolicy : 继续添加任务, 直接抛出异常
第二个 CallerRunsPolicy : 新的任务由添加任务的线程负责执行
第三个: DiscardOldestPolicy : 丢弃最老的任务 执行新任务
第四个: DiscardPolicy : 丢弃最新的任务 但是老任务执行