问个线程同步的问题

lemon_wei 2005-12-01 03:59:10
没有测试环境,故来请教一下,大家说说这样做有同步效果吗?
就是一个CRITICAL_SECTION 在不同线程中多次保护几个不同的变量,比如在线程A中正在执行g_a=10;
线程b的g_b=21能不能执行?
另外推荐点对同步讲得比较深的参考资料吧,很多书在讲同步时都是浅浅地讲一下。

线程A
{
EnterCriticalSection(&g_cs);
g_a = 10;
LeaveCriticalSection(&g_cs);

EnterCriticalSection(&g_cs);
g_b = 11
LeaveCriticalSection(&g_cs);
}

线程B
{
EnterCriticalSection(&g_cs);
g_b = 21;
LeaveCriticalSection(&g_cs);

EnterCriticalSection(&g_cs);
g_a = 20;
LeaveCriticalSection(&g_cs);
}
...全文
86 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
freemme 2005-12-01
  • 打赏
  • 举报
回复
因为是使用同一个互斥变量,所以线程A中正在执行g_a=10时,线程b的g_b=21不能执行,如果要让g_b可以执行,请使用多个互斥变量。对同步讲得比较深的参考资料,请参考《windows核心编程》。
gql_w 2005-12-01
  • 打赏
  • 举报
回复
windows核心编程讲的最好
aa3000 2005-12-01
  • 打赏
  • 举报
回复
这种情况在线程A中正在执行g_a=10;线程b的g_b=21不能执行;在网上查一下应该有对同步讲得比较深的参考资料

15,471

社区成员

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

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