继续执行另一个线程

Continue executing another thread

本文关键字:线程 另一个 执行 继续      更新时间:2023-10-16

我目前正在玩WinAPI,我已经开始线程。我的程序有相互协作的n线程。有一个线程,它将一些数据写入特定的内存位置,并等待使用特定内存位置的线程处理这些数据。然后再重复整个过程,不终止任何线程。

我的问题是忙于等待第二个线程浪费了太多时间。是否有任何方法挂起当前线程(为其他线程留出时间)或以不同的方式解决此问题?

请帮。

我猜你目前正在轮询/忙等待在你的主线程,不断检查一些完成标志的状态工作线程将设置。正如您注意到的,这是不可取的,因为您使用了一定比例的cpu带宽来等待工作线程完成。在某些情况下,这将减少您的工人计划的时间,延迟其完成。

与此相反,你可以使用一个同步对象,比如Event或Semaphore,让主线程处于休眠状态,直到worker发出完成信号。

您可以使用同步对象,如互斥锁,信号量事件等同步和WaitForSingleObject/WaitForMultipleObject API线程等待。