Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
ChatGPT
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
GitHub工具
更多话题
请教道友们一个问题
12-02-01
KenWT
记得去年面试中,面试官问过我这么一个问题,回来读了许久书,终于比当初明白了一些,但是还是感觉心中所理解的不够全面,所以在论坛里发出来,大家一同探讨探讨。他的问题是,多线程的优劣分别是什么?是不是线程创建得越多,程序的性能效率就越高?恳请大家踊跃拍砖!望道友们多赐教,这个问题,如何回答,才比较全面清晰而且准确严谨呢?
berserk
2012-02-01 18:05
并不是线程越多,效率越高。多线程主要的好处是并行处理。能提高系统的处理速度,和系统吞吐量。
我谈一点, 就是要看工作是否是可分割的,比如解析一个大型xml,使用多线程是可以加快解析过程。
而一个大数据量的excel记录导入db工作,看似可以用多线程来将excel记录集切分处理,但实质上,这并不能使系统效率提高,因为瓶颈处在io上,即使用多线程提高了excel记录的解析数据,但最终所有记录集都会在db的io上排队。
多线程使用还是看时机。并不是有就好,更不是越多越好。
sanatir
2012-02-02 00:51
多线程并不是越多效率越高,有时候反而会降低。因为线程上下文切换代价不菲。
另外,多线程会让你的代码更复杂和难以掌控,很多时候能不用就不用。
单处理器一般不建议使用多线程,选择多线程的一个原因是阻塞,比如IO或者GUI。
多处理器则会适当的时候适当创建线程,数目一般与CPU核数相同,另外要注意的是,少切换多计算,理由见上。
多线程只是一种解决方案而已,并不是万能药,有时候改进算法比起多线程来得明智。
alexwoo
2012-04-05 19:16
阿姆达尔定律
http://software.intel.com/zh-cn/articles/predicting-and-measuring-parallel-performance/
多线程设计