C++ 可以在Windows上以编程方式冻结线程吗?

C++ 可以在Windows上以编程方式冻结线程吗?,c++,multithreading,visual-studio,thread-safety,C++,Multithreading,Visual Studio,Thread Safety,例如,在VisualStudio中,可以随时冻结/解冻任何线程。为了为线程代码创建某种压力测试,是否可以通过编程方式执行此操作?如果任何线程可以被随机冻结一段随机时间,那么它将真正执行同步逻辑。您可以创建一个线程,它从线程池中随机选取线程,并将它们随机休眠一段时间。如果这正是您想要的。您可以使用SuspendThread和ResumeThread执行此操作,您将需要通过调用OpenThread获得的线程句柄。msdn上的页面对于这类事情来说是一个很好的资源。即使只是挂起它们并“立即”恢复它们,也

例如,在VisualStudio中,可以随时冻结/解冻任何线程。为了为线程代码创建某种压力测试,是否可以通过编程方式执行此操作?如果任何线程可以被随机冻结一段随机时间,那么它将真正执行同步逻辑。

您可以创建一个
线程
,它从
线程池
中随机选取
线程
,并将它们随机休眠一段时间。如果这正是您想要的。

您可以使用SuspendThread和ResumeThread执行此操作,您将需要通过调用OpenThread获得的线程句柄。msdn上的页面对于这类事情来说是一个很好的资源。

即使只是挂起它们并“立即”恢复它们,也可能会提供适当的不确定性延迟。并非所有线程都是线程池的一部分。而且,您没有在任务中引入延迟(以测试竞争条件),您只是在使用线程池-1@BenVoigt我理解,但我只是提供了一个概念,我不确定实际的代码是什么样子,以及线程是如何在gultz代码中实例化的。