Substitute of WaitForSingleObject

Substitute of WaitForSingleObject

本文关键字:WaitForSingleObject of Substitute      更新时间:2023-10-16

我在一个块化算法上使用了多线程。在没有线程的情况下,它运行30ms。如果有40个线程,它的运行时间为40ms。然而,根据我的观察,在WaitForSingleObject中使用了40ms中的20ms。

我想知道,是否有WaitForSingleObject的任何工作。

编辑:我的问题包含两个循环。第二种依赖于第一种的结果。我为每个循环使用四个线程。每个线程运行该循环内容的四分之一。

我需要等待第一个循环的四个线程完成之前,我开始为下一个4个线程第二个循环。

但是我感觉WaitForSingleObject花费了太多时间。最慢的线程只花费1到2毫秒。但是在我的记录中,WaitFor singleObject的值是相同的。

在没有线程的情况下,它的速度几乎相同,有时甚至更慢。所以,在我的例子中,线程确实有助于加速,但是WaitForSingleObject消耗掉了所有节省的时间和使程序慢如一个线程。

EnterCriticalSection和leaveccriticalsection是更轻的同步原语。您应该尽可能使用这些锁,而不是其他锁。

EDIT(以下EDIT在问题中):您可以使用Windows API Barrier,这可能与EnterCriticalSection的性能一样好

相关文章:
  • 没有找到相关文章