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