线程池
最近看到线程池,被里边乱七八槽的参数给搞晕了,你能不能给我讲讲呀?
对于从事后端开发的同学来说,线程是必须要使用了,因为使用它可以提升系统的性能。但是,创建线程和销毁线程都是比较耗时的操作,频繁的创建和销毁线程会浪费很多CPU的资源。此外,如果每个任务都创建一个线程去处理,这样线程会越来越多。我们知道每个线程默认情况下占1M的内存空间,如果线程非常多,内存资源将会被耗尽。这时,我们需要线程池去管理线程,不会出现内存资源被耗尽的情况,也不会出现频繁创建和销毁线程的情况,因为它内部是可以复用线程的。
并发线程之线程池
初始化线程池后,把任务丢进去,等待调度就可以了,使用起来比较方便。
JAVA中 Thread 是线程类,不建议直接使用 Thread 执行任务,在并发数量比较多的情况下,每个线程都是执行一个很短的时间就任务结束了,这样频繁创建线程会大大降低系统的效率,因为频繁的创建和销毁线程需要时间。而线程池可以复用,就是执行完一个任务,并不销毁,而是可以继续执行其它任务。
Thread的弊端
new Thread()
讯享网
线程池的优点
- 重用存在的线程,减少对象创建,消亡的开销,性能佳,降低资源消耗。
- 可以控制最大并发线程数,提高系统资源利用率,避免过多资源竞争,避免阻塞,提高响应速度。
- 提供定时执行,定期执行,单线程,并发数控制等功能,以提高线程的可管理性。
Executors利用工厂模式向我们提供了4种线程池实现方式,但是并不推荐使用,原因是使用Executors创建线程池不会传入相关参数而使用默认值所以我们常常忽略了那些重要的参数(线程池大小、缓冲队列的类型等),而且默认使用的参数会导致资源浪费,不可取。
ThreadPoolExecutor 介绍
构造函数和参数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/28293.html