竞争危害 (race hazard) 又名
竞态条件 (race condition)。旨在描述一个系统或者进程的输出展现无法预测的、对事件间相对时间的排列顺序的致命相依性。
网络上,竞争危害会在多用户同时试图访问同一个可用讯息通道时产生。再系统同意访问前没有计算机能得到讯息通道被占用的提醒。统计上说这种情况通常发生在极端长延迟时间的网络里,譬如
地球同步卫星。解决之道是用户于先预产生优先级列表。然而
黑客可以利用这种竞争危害取得非法访问网络的权利。
竞争冒险(race hazard)又名竞态条件、竞争条件(race condition),它旨在描述一个系统或者进程的输出依赖于不受控制的事件出现顺序或者出现时机。此词源自于两个信号试着彼此竞争,来影响谁先输出。
举例来说,如果计算机中的两个
进程同时试图修改一个共享内存的内容,在没有
并发控制的情况下,最后的结果依赖于两个进程的执行顺序与时机。而且如果发生了并发访问冲突,则最后的结果是不正确的。
竞争冒险常见于不良设计的电子系统,尤其是逻辑电路。但它们在
软件中也比较常见,尤其是有采用
多线程技术的软件。
在计算机科学,特别是程序设计、
操作系统、
多处理机和
数据库等领域,并发控制(英语:Concurrency control)是确保及时纠正由并发操作导致的错误的一种机制。
数据库管理系统(DBMS)中的并发控制的任务是确保在多个
事务同时存取
数据库中同一数据时不破坏事务的隔离性和统一性以及
数据库的统一性。下面举例说明并发操作带来的数据不一致性问题:
产生这种情况的原因是因为两个事务读入同一数据并同时修改,其中一个事务提交的结果破坏了另一个事务提交的结果,导致其数据的修改被丢失,破坏了事务的隔离性。并发控制要解决的就是这类问题。
封锁、
时间戳、乐观并发控制和悲观并发控制是并发控制主要采用的技术手段。