社区
进程/线程/DLL
帖子详情
请教多线程编程中关于CRITICAL_SECTION对象?
pc200300
2003-10-10 11:25:02
现有两个线程A和B依次先后访问该对象,当A进入时,B要阻塞。现在是否会出现这种情况:A访问结束退出后,在B访问之前A是否还有可能再次进入该对象访问?即对CRITICAL_SECTION对象是否有个访问队列的问题?谢谢大虾指点!
...全文
38
4
打赏
收藏
请教多线程编程中关于CRITICAL_SECTION对象?
现有两个线程A和B依次先后访问该对象,当A进入时,B要阻塞。现在是否会出现这种情况:A访问结束退出后,在B访问之前A是否还有可能再次进入该对象访问?即对CRITICAL_SECTION对象是否有个访问队列的问题?谢谢大虾指点!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vcforever
2003-10-10
打赏
举报
回复
这种调度好象是由操作系统来完成的,我们好象无法控制!
flyelf
2003-10-10
打赏
举报
回复
gz...
lop5712
2003-10-10
打赏
举报
回复
没有队列,其内部是用一个事件来实现的(我记不到是在哪看到的啦,但这有个问题,后面说)。
当A刚LeaveCri...后,这个事件将会成信号状态(前提是必须已经有线程执行了EnterCri..),这时A挂起(不一定,但在单CPU上是),B激活,开始执行。如果有两个以上线程等待,激活规则与事件的激活规则一样了。
所以如果A离开时,B还未等待,那么A完全有可能再次在B之前进入。
前面的说法是一位老外说的,我当时有疑问。因为CRITICAL_SECTION好用不是因为只用那几个函数就行了,而是它不是内核对象,不用进入内核模式,因此不用从用户模式向内核模式转变(要花大约1000个CPU周期,老外说的),因此更快。但按照上面的说法,实际使用一个事件,那么就要切换模式了,怎能还不是内核对象?老外的说法是只有当有线程等待时,那个不好的事件才生成,并相应的进入内核模式,平时不会进行模式切换。
对上面的说法我不是很赞同,不过,如果是这样,那么大家在设计使用CRITICAL_SECTION时应该小心,不要让你的线程经常等待,不然速度和使用一个事件是一样的,得到的只有编写代码更容易。
tumin999
2003-10-10
打赏
举报
回复
这个对列就是由EnterCri..()函数的调用时机决定,大家按EnterCri..的顺序排队。当有一个线程释放该对象时(LeaveCri...),对列中的下一个线程进入。
秒杀
多线程
第五篇 经典线程同步 关键段CS
上一篇《秒杀
多线程
第四篇 一个经典的
多线程
同步问题》提出了一个经典的
多线程
同步互斥问题,本篇将用关键段
CRITI
CA
L_S
ECT
ION
来尝试解决这个问题。 本文首先介绍下如何使用关键段,然后再深层次的分析下关键段的...
秒杀
多线程
第六篇 经典线程同步 事件Event
上一篇
中
使用关键段来解决经典的
多线程
同步互斥问题,由于关键段的“线程所有权”特性所以关键段只能用于线程的互斥而不能用于同步。本篇介绍用事件Event来尝试解决这个线程同步问题。 首先介绍下如何使用事件。...
volatile——
多线程
程序员最好的朋友
volatile——
多线程
程序员最好的朋友volatile修正符及让你的...tid=94481并不是我故意想弄糟你的心情,但是在这期专栏里,我们将讨论
多线程
编程
这一话题。正如上一期Generic里所说的,编写异常安全(except
ion
-safe
JNI_
编程
技术__网文整理
遇到
多线程
-- java
对象
如何被 C++
中
的多个线程访问 ? . 97 chap 15 : JNI 在
多线程
中
的应用 ... 101 chap 16 : JNI 限制(
多线程
) ... 105 chap 17 :使用 Java Native Interface 的...
Qt开发经验(转载)
默认QtCreator是单线程编译,可能设计之初考虑到尽量不过多占用系统资源,而现在的电脑都是多核心的,默认msvc编译器是
多线程
编译的不需要手动设置,而对于其他编译器,需要手动设置才行。 方法一:在每个项目的...
进程/线程/DLL
15,472
社区成员
49,183
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章