线程 : cpu执行的最小单元,一个应用程序就是一个进程,一个进程下有一个或则多个线程 共同完成一组应用程序
为什么需要线程池
线程的正常生命周期如下
上诉时间都是假所花时间
线程最核心的功能就是执行任务,但我们运行时其实只花了1秒,
假如现在有50个任务需要执行,一次最多创建10个线程执行10个任务,如果已普通的放式进行执行,那么如上图所示的话 ,那么就要花费30秒,如果通过线程池一次执行10个任务,那么只需要花费5秒,在时间上是很乐观的
java线程池的执行过程(直接上图直观)
队列(先进先出的规则对接点进行排序)
阻塞队列:入对时,当队列中只能放10个元素时,再放入第11个元素的时候,数据就会丢失;出队时,如果队列中没有元素,此时进行出对操作,那么得到的就是null
非阻塞队列 :入队时,当队列中元素已满时,只有队列中有元素出对时,然后才会有新元素放进出,否则处于等待状态;出队时,如果队列中没有元素,进行出队操作会等待,什么时候放进去,什么时候才取出来
线程池就是基于阻塞队列实现的
java 线程池(自娱自乐)
最新推荐文章于 2024-03-04 10:00:16 发布