比赛条件读写

时间:2016-04-02 12:37:01

标签: process operating-system synchronization pthreads race-condition

根据定义,当两个不同的进程同时尝试更改共享变量时会发生竞争条件,但即使其中一个进程在另一个写入时也没有写入,它是否会发生?

示例:

Process X; var.read -> var.change -> var.write Process Y; var.read -> var.change -> var.write

Process X; var.read -> var.change Process Y; var.read -> var.change -> var.write Process X; var.write

两者都应该导致不一致,因为在发生其他事情时会发生写入,但是它们是否会导致竞争条件?

1 个答案:

答案 0 :(得分:0)

您可以轻松地与一位作家和同时读者争分。

假设您希望y大于零并且具有以下内容:

GLOBAL X ;

if X > 100 then
   y := x - 50 ;

如果其他人正在写x,y最终可能会小于零。