
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
线程池是程序员在学习软件编程开发技术的时候需要重点掌握的一个编程知识,而今天我们就通过案例分析来了解一下,线程池的有点与线程复用方法。
1、线程池的优点
Java中的线程池是运用场景多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池,Spring、Dubbo、Mybatis等等框架中都有大量的使用线程池。
那线程池到底有哪些好处呢?
在开发过程中,合理地使用线程池能够带来几个好处:
降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;
提高系统响应速度,当有任务到达时,通过复用已存在的线程,无需等待新线程的创建便能立即执行;
方便线程并发数的管控。因为线程若是无限制的创建,可能会导致内存占用过多而产生OOM(OutOfMemory),并且会造成CPU过度切换(CPU切换线程是有时间成本的,需要保持当前执行线程的现场,并恢复要执行线程的现场)。
提供更强大的功能,延时定时线程池。
2、线程的复用
线程池将线程和任务进行解耦,线程是线程,任务是任务,摆脱了之前通过Thread创建线程时的一个线程必须对应一个任务的限制。
在线程池中,同一个线程可以从阻塞队列中不断获取新任务来执行。
其核心原理在于线程池对Thread进行了封装,并不是每次执行任务都会调用Thread.start()来创建新线程,而是让每个线程去执行一个“循环任务”,在这个“循环任务”中不停的检查是否有任务需要被执行,如果有则直接执行。
也就是调用任务中的run方法,将run方法当成一个普通的方法执行,通过这种方式将只使用固定的线程就将所有任务的run方法串联起来。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。