软件开发中的并发

来源:互联网 发布:淘宝开店可以不交钱吧 编辑:程序博客网 时间: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. 避免死锁,如一个事物只申请一种锁资源,锁未释放时,不申请新的锁

原创粉丝点击