首页 > 代码库 > 有关多线程程序开发
有关多线程程序开发
多线程程序设计的困难
- 难以重现失败,bug难以追踪
- 并发错误难以追踪和消除
- 独立任务的拆分并不总是那么明朗
- 线程同步、通信引入的复杂
- 多线程引发的竞争、死锁、可见性问题(难以调试、追踪)
- 测试困难,简单的测试并不能覆盖生产环境的问题
- 设计不当,并不能充分提升性能(不控制线程数量,造成无谓上下文切换和Cache失效)
多线程引入的开销
- 上下文切换【包括Cache】
- 内存同步/Memory Barrier【java中的synchronized 和 volatile】
- 锁
- 内存开销
多线程程序优化
- 线程池(优化掉线程创建、销毁开销),适当的大小
- CPU affinity(有效利用Cache)
- 无锁数据结构
- 空闲线程适时休眠(减少无用切换)
- 适当的优先级调整
有关多线程程序开发
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。