码迷,mamicode.com
首页 > 其他好文 > 详细

并发编程

时间:2018-09-04 23:26:26      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:做什么   目的   策略   共享   同步   并发编程   作者   需要   限制   

  对象是过程的抽象,线程是调度的抽象;

 

  并发是一种解耦策略:把做什么(目的)和何时做(时机)分解开;

  响应时机、吞吐量;

  并发防御原则:单一权责原则:分离并发代码与其他代码;

         限制数据作用域:synchronized;谨记数据封装,严格限制对可能被共享的数据的访问;

         使用数据副本;

         线程应尽可能地独立:尝试将数据分解到可被独立线程操作的独立子集;

  了解执行模型:生产者-消费者模型、读者-作者模型、宴席哲学家

  警惕同步方法之间的依赖:避免使用一个共享对象的多个方法;解决:基于客户端的锁定,基于服务端的锁定,适配服务端;

  保持同步区域微小:很难编写正确的关闭代码(死锁);测试线程代码;

 

  限定资源:并发环境中有着固定尺寸或数量的资源;

  互斥:每一时刻仅有一个线程能访问共享数据或共享资源;

  线程饥饿:一个或一组线程在很长时间内或永久被禁止;

  死锁:两个或多个线程互相等待执行结束;每个线程都拥有其他线程需要的资源,得不到其他线程拥有的资源,就无法终止;

  活锁:执行次序一致的线程,每个都想要起步,但发现其他线程已经“在路上”;

     由于竞步的原因,线程会持续尝试起步,但在很长时间内却无法如愿,甚至永远无法启动;

并发编程

标签:做什么   目的   策略   共享   同步   并发编程   作者   需要   限制   

原文地址:https://www.cnblogs.com/xiajia/p/9588922.html

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