根据定义,当两个不同的进程同时尝试更改共享变量时会发生竞争条件,但即使其中一个进程在另一个写入时也没有写入,它是否会发生?
示例:
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
两者都应该导致不一致,因为在发生其他事情时会发生写入,但是它们是否会导致竞争条件?
答案 0 :(得分:0)
您可以轻松地与一位作家和同时读者争分。
假设您希望y大于零并且具有以下内容:
GLOBAL X ;
if X > 100 then
y := x - 50 ;
如果其他人正在写x,y最终可能会小于零。