Directshow Transform 过滤器的实现会暴露数据竞争吗? [已解决]
我正在 Directshow 中编写一个转换过滤器。我查看了 转换过滤器实施。 他们使用 1 个 filter_lock 来保护过滤器的状态,并使用另一个名为 streaming_l…
实现自旋锁与 Win32 临界区
我正在尝试优化 Win32 的 CRITICAL_SECTION 以实现更“复杂”的同步原语,其中我不需要关键部分的重入功能。到目前为止,这是我的自旋锁: class MSpi…
使用简单的 CRITICAL_SECTION,似乎陷入僵局
我有一个使用 CRITICAL_SECTION 的简单 C 程序。 由于某种原因它似乎一次又一次地进入CRITICAL_SECTION并且没有真正执行里面的代码,导致线程死锁。 …
关键部分内的 InterlockedExchange(或类似的原子操作)?
我看到了一些重复的代码(准确地说是方法),它们进入关键部分,然后使用 InterlockedExchange...这有意义吗,因为我认为这个操作实际上是原子的,不…
断言当前线程没有持有 CRITICAL_SECTION 锁
我有一个维护列表的对象;其中一个辅助方法需要 锁定列表, 找到第一个元素, 解锁列表 ,通知另一个线程开始清理操作, 等待另一个线程完成, 重复此…
iOS 上的上下文切换使用“performSelectorOnMainThread”
我在 iOS 上遇到奇怪的线程问题。考虑这样一个简单的方法: - (BOOL)doSomething { [self doA]; [self doB]; } 该方法应该仅在主线程的上下文中运行。…
多线程和多进程应用程序的锁定机制有什么区别?
我有一段代码可以处理多线程(使用共享资源)问题,如下所示: CRITICAL_SECTION gCS; InitializeCriticalSection(&gCS); EnterCriticalSection(&gCS)…
为什么我的线程被关键部分阻塞而没有被任何东西持有?
我在 C++ 中的关键部分遇到问题。我遇到一个挂起的窗口,当我转储进程时,我可以看到线程在关键部分等待: 16 Id: b10.b88 Suspend: 1 Teb: 7ffae000 …
Delphi:多线程,线程安全不起作用
当数据发送到“隧道”套接字时,它有时会被合并,实现关键部分,但它不起作用.. 我做错了什么? type my_ff_thread = class; my_ss_thread = class; T…
C# 锁定实例对象内的对象
我遇到了一种情况,迫使我锁定实例对象内部的锁对象,我想知道这是真的吗? 澄清一下: public class classA { object objLock = new object(); publi…
Delphi 线程:CriticalSection 未“释放”在其方法内使用 Synchronize 时
在我的项目中,我有一个线程,它可能会被线程本身、其他线程或 VCL(主应用程序)修改。 因此,我对每次数据访问都使用 TCriticalSection.Acquire / R…
OpenMP 中的原子性和关键性有什么区别?
OpenMP 中的原子性和关键性有什么区别? 我可以做到这一点 #pragma omp atomic g_qCount++; ,但这不是一样吗 #pragma omp critical g_qCount++; ?…
C++关键部分不工作
我的关键部分代码不起作用! Backgrounder.run 能够修改 MESSAGE_QUEUE g_msgQueue 并且 LockSections 析构函数尚未被调用! 额外代码: typedef std:…