为什么会出现线程池
1.使用线程池可以重复利用已有的线程继续执行任务,避免线程在创建和销毁时造成的消耗。
2.由于没有线程创建和销毁时的销毁,可挑高系统响应的速度
3.通过线程池可以对线程进行合理的管理,根据系统的承受的承受能力调整可运行线程的数量大小
例子:
最小线程池30(先创建30个,进行需要时候就进行拿,不需要时候就进行放回来) ,当超过30个达到31,进行创建,不到31不进行创建
并发量:同一时间做同样的操作
访问量:就是总访问量
3.这个数据需要改为多少,才能为未来2年设定一个数,当并发量更高时候,
工作原理:
1.提交者:我们写的代码
提交到线程池,线程池分配一个对应的线程进行完成任务,
(核心线程池是否已经满了):就是上面写的30,(不需要管创建 启动 销毁交给线程池)
线程池满了,就查看阻塞队列是否满了.private BlockingQueue<Goods>blockingQueue; 这个就是阻塞队列 ,线程池满了,就在阻塞队列中进行排队,如果阻塞队列也满了,启动上面的线程 超过30启动别的线程.
ThreadPoolExecutor 线程执行者
ScheduiedThreadPoo 可调度的 两种功能(延时功能 定时任务)
Fork JoinPool 把大的任务分为若干的小问题 思想分而致之
宕机 :挂了