我是并发编程的新手,我解决了这个问题,我无法真正理解错误,考虑下面的伪代码,x是一个用0初始化的共享(条件)变量:
signal(c) wait(c) x = x + 1 signal(c)
x在单个处理器中运行2个线程(并发)的可能结果是什么?
在执行两个线程之后,一切都很好并且x = 2或两个“x = x + 1”线同时执行然后x = 1,因为两个线程同时读取x的初始值为0。