对共享资源进行临界保护(用CriticalSection),有什么影响?

rockrabbit 2004-09-06 04:56:04
比如,两个线程A、B,一个共享的整型变量x(可能为1或者0)。
A线程设置x=1。B线程检查x,当x=1时,执行某项操作,然后设置x=0。

想问的是:
当A线程设置x=1时(在临界保护状态),假设同时B线程开始读取x的值,此时会出现什么结果:B的代码会被阻塞、直到A中退出临界保护状态?还是B中出现失败或者错误,程序继续往下执行?
...全文
124 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rockrabbit 2004-09-07
  • 打赏
  • 举报
回复
谢谢,明白了。
arvid_gs 2004-09-06
  • 打赏
  • 举报
回复
B的代码会被阻塞、直到A中退出临界保护状态
oyljerry 2004-09-06
  • 打赏
  • 举报
回复
线程B将挂起,等待线程A退出临界区,然后,线程B进入临界区
DentistryDoctor 2004-09-06
  • 打赏
  • 举报
回复
如果B的代码与在临界区内,B的代码会被阻塞、直到A中退出临界保护状态.否则会直接读到值的,但值可能不正确。

15,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧