【发布时间】:2016-03-22 18:16:03
【问题描述】:
int x = 0 // global shared variable
T1: for (i=0; i++; i<100) x++;
T2: x++ // no loop, just one increment
T1 和 T2 是独立的线程。我被告知 x 的最终值可以是 1 和 101 中的任何值。这怎么可能?我想知道这怎么可能只是 1。
显然,执行顺序中出现了一些错误,但我想知道是什么。
【问题讨论】:
-
是什么语言?
-
假设任意语言
标签: multithreading operating-system