作用:提高资源的利用率。
如果不使用线程池,我们对线程的操作是:
1.需要手动创建线程对象
2.执行任务
3.执行完毕,释放线程对象。
这样的话,它的资源利用率很低,就相当于来一个任务,创建一个对象,执行完后把对象扔掉,下一个来继续创建继续仍。
就相当于您现在面试我雇佣我入职去做需求写代码,使用完把我辞退了,需求来了 继续面试然后入职。这样成本是非常高的。
而使用线程池就是让资源重复利用。
思想:
创建很多线程对象放到线程池中,当有任务来的时候,从线程池中拿出来,执行完以后还回来,供下一次任务使用。通过这种方式提高线程对象的利用率,可以节省创建和销毁线程的性能消耗。
优点:
可以控制最大并发数,通过设置线程池的参数来设置线程池的容量,进而控制系统的最大并发量。
内部实现:只开三个线程,最大线程数是五。如果是四个线程最后一个会先到等候区里面,由 1 2 3去办理四个业务。
如果超过了核心线程和等候区的线程数量,比如来 7个,会赶紧让第四号窗口回来上班,