社区
多媒体/流媒体开发
帖子详情
CAutoLock的使用对死锁有什么影响?
vcbacker
2004-08-03 09:48:24
CAutoLock应该大量使用,还是谨慎使用?
我的一个filter graph在停止的时候经常死锁,偶尔能正确停止,
可能会是什么原因?
...全文
298
5
打赏
收藏
CAutoLock的使用对死锁有什么影响?
CAutoLock应该大量使用,还是谨慎使用? 我的一个filter graph在停止的时候经常死锁,偶尔能正确停止, 可能会是什么原因?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
happydeer
2004-08-03
打赏
举报
回复
那就要搞清楚DirectShow中的线程使用情况?为什么要加锁?参见《ds开发指南》P38页。
vcbacker
2004-08-03
打赏
举报
回复
怎么样避免这种死锁的?
happydeer
2004-08-03
打赏
举报
回复
当然要谨慎使用CAutoLock。如果两个线程同时锁定CCritSec对象,相互等待,那就死锁了。
vcbacker
2004-08-03
打赏
举报
回复
经观察,可能是2个graph一起关掉的时候产生了这个问题,
单独关掉其中1个都没问题
vcbacker
2004-08-03
打赏
举报
回复
多谢陆老师指点~~~!
如何
使用
CMutex类的资源
如何
使用
CMutex类 如何
使用
CMutex类 如何
使用
CMutex类 如何
使用
CMutex类
WTL的线程类
展示一小组ATL / WTL类,这些类简化了线程的
使用
。
如何避免
死锁
用互斥量实现同步时如何避免
死锁
? 当我们对一段代码加锁后忘了解锁,我们的程序就很有可能出现
死锁
的现象。这样的错误我们一般是会小心避免的,但也绝不能保证永远都不犯。真当出现
死锁
而代码量又很大的时候,问题常常很难被发现,因为多线程程序的调试常常很麻烦。 那么有没有办法实现自动解锁机制呢?当然有!我们很容易联想到类的构造和析构函数,因为这两者会在对象被创建和销毁的时候被自动调用。
调用TerminateThread终止线程所导致的
死锁
问题
程序中调用TerminateThread强制终止子线程,结果导致程序
死锁
。 子线程和主线程都
使用
了一个临界区变量。主线程创建子线程时,会调用临界区,从而对临界区加锁。子线程运行过程中也会对临界区加锁。这原本是不会导致任何问题的。 为了便于管理临界区,我定义了一个自动锁的类。
CA
uto
Lock
自动锁,调用构造函数时,加锁,调用析构函数时,解锁。子线程中,就定义了自动锁的对象。——这个自动
vc中调用TerminateThread终止线程所导致的
死锁
问题
程序中调用TerminateThread强制终止子线程,结果导致程序
死锁
。 子线程和主线程都
使用
了一个临界区变量。主线程创建子线程时,会调用临界区,从而对临界区加锁。子线程运行过程中也会对临界区加锁。这原本是不会导致任何问题的。 为了便于管理临界区,我定义了一个自动锁的类。
CA
uto
Lock
自动锁,调用构造函数时,加锁,调用析构函数时,解锁。子线程中,就定义了自动锁的对象。——这个自动
多媒体/流媒体开发
2,553
社区成员
20,277
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章