[17][33][多选]进程P有两个线程T1和T2,其完成的功能如代码所示。
待补充代码框 T1: while (true) { i = i + 1; } ... T2: while (true) { printf ("%d", i; i = 0; } ... 假设i的当前值是0,之后T1和T2并发执行了2次循环。下列哪些值是可能的输出结果
0
1
2
3
4
答案
ABC
解析
i的当前值是0,T1和T2并发执行2次循环,可能出现的情况有T1执行2次i = i + 1后T2执行2次printf ("%d", i; i = 0;,此时输出0;也可能T1执行1次i = i + 1后T2执行1次printf ("%d", i; i = 0;,然后T1再执行1次i = i + 1后T2再执行1次printf ("%d", i; i = 0;,此时输出1;同理可以分析出2也是可能的输出结果,故选择ABC选项。
转载请注明出处。