软件开发中的并发
来源:互联网 发布:淘宝开店可以不交钱吧 编辑:程序博客网 时间:2024/05/12 11:56
并发作用:
1. 在交互式应用中,快速响应用户的请求,提高感知响应的时间
2. 充分利用硬件资源,计算资源
3. 简化应用设计
并发坏处:
1. 难于测试
2. 并发应用运行在复杂的环境下,软件不确定性增多
3. 处理同步,通信的问题,增加编程复杂性
4. 并发开销对性能的影响,包括上下文环境切换,同步等
并发需要考虑的三个因素:
1. 任务分解
2. 同步
3. 通信
并发层级:
1. 指令级并发
2. 线程
3. 进程
在一般应用中,主要有应用层级的并发和数据库层级的并发(J2EE)。下面主要讨论数据库层级的并发。
数据库层级的并发的本质问题:
1. 丢失更新
2. 不一致读
根据并发冲突的频率和严重性,并发控制方式主要有两种:
1. 乐观并发控制(冲突检测)
2. 悲观并发控制(冲突避免)
处理并发的主要方式是事物,事物的四个基本原则:ACID。
在悲观并发控制方式下,会出现死锁,即在得到锁的情况下,还需要更多的锁。
死锁控制方式:
1. 死锁出现时,解锁。如设置超市控制
2. 避免死锁,如一个事物只申请一种锁资源,锁未释放时,不申请新的锁
- 软件开发中的并发
- 软件开发中的审美疲劳
- 软件开发中的事务处理
- 软件开发中的注意事项
- 软件开发中的角色扮演
- 软件开发中的角色扮演
- 软件开发中的误区
- 软件开发中的两个基本点
- 软件开发中的沟通
- 软件开发中的文档
- 软件开发中的“宫心斗”
- 软件开发中的逻辑
- 软件开发中的质量问题
- 软件开发中的质量保证
- 软件开发中的“格调”
- 软件开发中的资源管理
- 软件开发中的经验教训
- 软件开发中的结构图
- 关于Map表循环过程删除操作出现的java.util.ConcurrentModificationException 异常
- Android全屏BUG
- CLRS (Introduction to Algorithms 2nd) reanding notes 2
- 分布学在flash当中的应用体现
- Linux Bash Shell学习(十八):String I/O——echo和printf
- 软件开发中的并发
- 2012-2年初2:写给面临危机的计算机类学生们的肺腑之言
- 狗屁学校,狗屁事....
- 关于wamp server在Windows7 x86&x64上无法正常启动运行的解决方法。
- MSNPSharp 代碼6
- MSNPSharp 代碼7
- 树的最小顶点覆盖
- msn機器人已經可以基本實現以下的幾個功能
- 新年