多线程编程的注意事项

         1、明确目的,为什么要使用多线程?如果是由于单线程读写或者网络访问(例如HTTP访问互联网)的瓶颈,可以考虑使用线程池。如果是对不同的资源(例如SOCKET连接)进行管理,可以考虑多个线程。
          2、线程使用中要注意,如何控制线程的调度和阻塞,例如利用事件的触发来控制线程的调度和阻塞,也有用消息来控制的。
          3、线程中如果用到公共资源,一定要考虑公共资源的线程安全性。一般用LOCK锁机制来控制线程安全性。一定要保证不要有死锁机制。
          4、合理使用sleep,何时Sleep,Sleep的大小要根据具体项目,做出合理安排。一般原则非阻塞状态下每个循环都要有SLeep,这样保证减少线程对CPU的抢夺。每次线程的就绪和激活都会占用一定得资源,如果线程体如果有多个循环,多处使用SLEEP将导致性能的下降。
          5、线程的终止一般要使线程体在完成一件工作的情况下终止,一般不要直接使用抛出线程异常的方式终止线程。
          6、线程的优先级一定根据程序的需要要有个整体的规划

最新文章

  1. sharepoint列表如何进行随机取几条记录?
  2. js小例子(标签页)
  3. JS 阻止浏览器默认行为和冒泡事件
  4. this class is not key value coding-compliant for the key ##
  5. medoo数据库插入的问题
  6. PHP简单获取数据库查询结果并返回JSON
  7. [置顶] How to compile openjdk 7 in RHEL5
  8. html中的table在android端显示
  9. 如何快速将本地项目托管到到github上?
  10. IOS对话框UIAlertView
  11. 深入浅出 spring-data-elasticsearch - 基本案例详解(三
  12. (转)mysql 无法设置外键的原因总结
  13. python统计词频
  14. Thread.join(), CountDownLatch、CyclicBarrier和 Semaphore区别,联系及应用
  15. 16.Linux-LCD驱动(详解)
  16. kubernetes 基础一
  17. css冲刺
  18. poj3321 dfs序+树状数组单点更新 好题!
  19. mui 总结
  20. Mac下android studio卡,居然这么解决了。。。。

热门文章

  1. jdbc navcat for mysql 连不上远程服务器的原因(安全组设置)
  2. js 中继承的几种方式
  3. POJ3579 Median —— 二分
  4. CSS:清除浮动
  5. Lucene in action 笔记 term vector——针对特定field建立的词频向量空间,不存!不会!影响搜索,其作用是告诉我们搜索结果是“如何”匹配的,用以提供高亮、计算相似度,在VSM模型中评分计算
  6. 两种 NIO 实现:Selector 与 Epoll
  7. UVA-11054(扫描法)
  8. Hadoop学习资料(持续更新)
  9. 洛谷P1247取火柴游戏
  10. C. Vanya and Scales