【13】CC - 并发编程

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

1、并发防御原则
(1)单一权责原则

  分离并发相关代码


(2)限制数据作用域

封装数据,严格限制对可能被共享的数据的访问


(3)使用数据复本

假设使用对象复本能避免代码同步执行,因而避免了锁定而省下的价值有可能补偿得上额外的创建成本和垃圾收集开销。


(4)线程尽可能独立

将数据分解到可被独立线程操作的独立子集上。


2、执行模型
(1)生产者-消费者模型

一个或多个生产者线程创建某些工作,并置于缓存或队列中。一个或多个消费者线程从队列中获取并完成这些工作。生产者和消费者之间的队列是一种限定资源。


(2)读者-作者模型

更新时会影响吞吐量


(3)宴席哲学家

哲学家就餐问题


3、不要将系统错误归咎于偶发事件

偶发事件被忽略得越久,代码就越有可能搭建于不完善的基础之上


4、装置试错代码
(1)运行多于处理器数量的线程

任务交换越频繁,就越有可能找到错过临界区或导致死锁的代码

(2)硬编码

增加对wait,sleep,yield等的调用

(3)自动化

采用AOP自动化装置


转载于:https://my.oschina.net/scipio/blog/291779

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值