Java常见问题(二十一):Java中的线程池有什么用?

题目分析:其他内容正在学习中…

【答案】

  • 为什么需要线程池?
    如果没有线程池,我们平常所创建的线程在运行结束后都会被虚拟机销毁,如果任务数量多的话,频繁的创建和销毁线程会浪费大量时间,降低任务效率,创建过多的线程也会使内存开销吃紧。
    线程池是一种异步化技术,通过预先创建线程/异步处理来提高响应速度。同时通过统一调配线程资源,可以降低线程的重复创建问题,提高线程的利用率,中心化管理有利于对资源的有效控制,防止滥用。

  • 线程池有什么优势?
    线程池运用的思想就是“以空间换时间”,牺牲一定的内存,来换取任务效率:
    (1)降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;
    (2)提高系统响应速度,当有任务到达时,通过复用已存在的线程,无需等待新线程的创建便能立即执行;
    (3)方便线程并发数的管控。因为线程若是无限制的创建,可能会导致内存占用过多而产生OOM,并且会造成cpu过度切换(cpu切换线程是有时间成本的(需要保持当前执行线程的现场,并恢复要执行线程的现场))。
    (4)提供更强大的功能,延时定时线程池

【题目拓展】

暂无

发布了82 篇原创文章 · 获赞 0 · 访问量 891

猜你喜欢

转载自blog.csdn.net/weixin_43518038/article/details/105079785
今日推荐