如何让线程在运行之前先睡眠?我知道如何让睡眠工作,但是,每当我的程序运行时,线程立即运行。我希望它在首次创建时开始运行时等待。 (我正在使用处理程序)
答案 0 :(得分:1)
您无法控制何时安排线程。如果你想让它进入休眠状态,请让线程子程序中的第一个语句在条件或类似情况下等待,当你准备就绪时,你可以广播到那个条件。在伪代码中:
get-lock
if (we-are-still-supposed-to-sleep)
pthread_cond_wait()
release-lock
我想你可以让父母在创建孩子时持有锁,然后他们所要做的就是:
get-lock
release-lock
并避免这种情况。
答案 1 :(得分:0)
什么操作系统? Windoze允许您创建处于挂起状态的线程。加载ctor中的线程字段后,可以恢复该线程。如果失败了,请在线程启动参数中传递一些同步对象,以便新线程等待。
RGDS, 马丁。