码迷,mamicode.com
首页 > 编程语言 > 详细

有关多线程程序开发

时间:2014-09-23 19:25:45      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:多线程   优化   

多线程程序设计的困难

bubuko.com,布布扣

  • 难以重现失败,bug难以追踪
  • 并发错误难以追踪和消除
  • 独立任务的拆分并不总是那么明朗
  • 线程同步、通信引入的复杂
  • 多线程引发的竞争、死锁、可见性问题(难以调试、追踪)
  • 测试困难,简单的测试并不能覆盖生产环境的问题
  • 设计不当,并不能充分提升性能(不控制线程数量,造成无谓上下文切换和Cache失效)

  

多线程引入的开销

bubuko.com,布布扣

  

  • 上下文切换【包括Cache】
  • 内存同步/Memory Barrier【java中的synchronized 和 volatile】
  • 内存开销

  

多线程程序优化

bubuko.com,布布扣

  • 线程池(优化掉线程创建、销毁开销),适当的大小
  • CPU affinity(有效利用Cache)
  • 无锁数据结构
  • 空闲线程适时休眠(减少无用切换)
  • 适当的优先级调整

有关多线程程序开发

标签:多线程   优化   

原文地址:http://blog.csdn.net/icode0410/article/details/39499877

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!