队列可用于多任务派发:比如我有10000个任务需要执行,若用for循环等同时执行10000个任务,可能程序会比较有压力,也可能会造成效率比较低,此时就可将这10000个任务拆分为如200个任务为一组执行,还可以在执行之前单独组装每个任务再派发到通道(队列)中,既由原来的一条线执行拆分为多段执行,每段可单独执行,执行的业务逻辑和入库可分开。
1.准备一个队列,队列中提供添加,获取和队列中数量的方法
2.模拟单例模式,程序启动至生成一个队列(多个地方使用到队列,就生成多个)
懒汉式单例并发,多线程效率比较低
此处采用饿汉式
3.模式生成任务,添加到队列
模拟执行任务
4.模拟程序启动
5.总结:可以自定义线程池,此处使用jdk自带线程池,如果生产者添加任务比较多,可多添加些生产者的对象到线程池中