首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
piliu
电子科技大学
2020届
C++工程师
关注
私信
加入黑名单
举报TA
首页
刷题
圈子
项目
笔记
基本资料
真题试卷
在线编程
心理测试
回答的问题(2)
两个线程并发执行以下代码,假设a是全局变量,那么以下输出______是可能的? void foo(){ ++a; printf("%d ",a); }
0
自加和打印都不是原子操作
发表于 2018-10-22 18:57:22
竞选条件(race condition)的情况下,两线程执行如下代码段,其中count为共享变量,线程1执行代码段A,线程2指向代码段B,那么变量count的值可能为? int count =10; 代码段A: Thread_1() { //do something count++; } 代码段B: Thread_2() { //do something count--; }
0
如果count声明为volatile类型,则两个线程直接从寄存器获取count的值,而不是先拷贝再赋值,那么最后的结果为10
发表于 2018-10-20 12:10:46
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题