up:: 多线程与分布式概述
说明:
(1) 在了解线程池之前,可以先看下【Java多线程】及后续的五篇博客,回顾一下JavaSE中线程的基本内容;
● 进程和线程的简介、创建线程的三种方式、线程状态、线程生命周期、sleep()和join()方法、线程优先级、线程同步(synchroniced)、线程间通信(wait()、notify()、notifyAll());
● 通过回顾线程的内容,主要是要明白这个逻辑:【任务的执行,是需要占用CPU的】→【而,每个任务从开始到结束,并不会一只占用CPU】→【比如,我们有A,B,C,D,E5个任务】→【自然,我们可以依次执行A,B,C,D,E这5个任务;自然,这种方式时,比如在执行A任务的过程中,不会一直占用CPU,即CPU会存在空闲的时间片;;;;但,因为我们是顺序依次执行这个5个任务,所以CPU的空闲的时间片就白白闲置了】→【但是,如果我们把A,B,C,D,E这5个任务,放在5个线程中去,然后启动这个5个线程:那么CPU就会合理调度这个5个线程,在执行这5个任务的时候,CPU会被充分压榨和利用;;;;由此,执行这5个任务的总时间,就会减少】;这其实,也算是体现了线程的作用;
(2)本篇博客内容: 介绍线程池部分会介绍哪些内容;
一:线程池部分内容;
(1) 线程池简介;
● 线程池简介:为什么要有线程池、线程池的作用;
(2)创建和停止线程池;
● 重点是创建线程池;
(3)常见线程池的特点和用法;
● 其实,jdk已经提供了很多有用的线程池;通常,我们可以利用这些jdk提供的线程池,来帮助我们实现业务逻辑
● 所以,我们需要了解jdk给我们提供了哪些线程池;这样以后,我们在需要的时候,才能够更好的使用这些现成的轮子;
(4)任务太多,怎么拒绝;
● 线程池满了之后,怎么做;
(5)钩子方法;
● 我们会给线程池增加一些能力;比如,在线程池执行每一个任务之前或之后,都可以做一定的调优;