经典指数          
原因
1473
浏览数
0
收藏数
 

两个线程并发执行以下代码,假设a是全局变量,那么以下输出___哪个是可能的?
int a=1;
void foo(){
    ++a;
    printf("%d",a);
}
  • 3 2
  • 2 3
  • 3 3
  • 2 2

     举报   纠错  
 
切换
1 个答案
选项D是假设线程A先执行++a操作但没有写回到内存,这时线程B执行++a操作写回内存并printf,输出2_,线程A继续执行,++a操作写回内存,a的值保持2,再printf
 
切换
撰写答案
扫描后移动端查看本题