在运行之前先让线程进入睡眠状态

时间:2011-05-24 23:07:46

标签: handler sleep wait thread-sleep

如何让线程在运行之前先睡眠?我知道如何让睡眠工作,但是,每当我的程序运行时,线程立即运行。我希望它在首次创建时开始运行时等待。 (我正在使用处理程序)

2 个答案:

答案 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, 马丁。