选择题 8.  两个线程运行在双核机器上,每个线程主线程如下,线程1:x=1;r1=y;,线程2:y=1;r2=x;,x和y是全局变量,初始都为0。r1和r2的可能值是______。
【正确答案】 A、B、D
【答案解析】 本题中,两个线程运行在双核机器上,没有设置临界区,所以,无法保证执行的正确性,而线程1与线程2在执行的过程中,先后顺序是不可控的,可能存在着以下三种情况:
   1)首先执行x=1,然后执行y=1,接着执行r1=y,即r1=1,最后执行r2=x,即r2=1。所以,r1=1,r2=1。因此,选项A正确。
   2)首先执行y=1,然后执行r2=x,此时x的值为初始值0,所以,r2=0,接着执行x=1,最后执行r1=y,而y的值为1,所以,r1=1。因此,选项B正确。
   3)首先执行x=1,然后执行r1=y,此时y的值为初始值0,所以,r1=0,接着执行y=1,最后执行r2=x,而x的值为1,所以,r2=1。因此,选项D正确。
   所以,本题的答案为ABD。