预测Un-sysnchronized线程中的输出

时间:2012-06-20 12:43:07

标签: operating-system

i是一个值为5的全局变量,函数v()由三个线程调用。

v()
{
    i++;
    i--;
}

线程未同步。
什么是不。我可能的结果是什么?

1 个答案:

答案 0 :(得分:0)

输出始终为i=5,因为i++是单个语句(同样适用于i--),语句的顺序为i++和{{ 1}},结果始终为i--

如果您有i=5而不是int tmp = i; i = tmp + 1;,则可以i++,因为i≠5不是单一声明。

以下是两个线程(名为A和B)的所有可能性:

int tmp = i; i = tmp + 1;