多线程锁定要求

时间:2015-02-02 14:22:59

标签: multithreading

我曾经把这作为一个面试问题,但我不确定答案。

如果用100个线程计算c = c + 1,你需要锁吗?

2 个答案:

答案 0 :(得分:1)

是。原因是语句c = c + 1实际上是(大约)三个低级语句:

1. read c from the memory
2. increment c by one
3. store c back to the memory

如果两个线程执行(1),它们都会将c增加到相同的值并存储它。因此,c不会增加两次,而是只增加一次。

答案 1 :(得分:0)

是的,几乎所有支持并发的编程语言。