当前位置: 技术问答>linux和unix
怎样定时启动一个线程
来源: 互联网 发布时间:2016-06-28
本文导语: 假如,想在2009年8月29日8时8分8秒启动某个线程,该怎样设定这个定时器? | 设你定时的时间为 atime; long diff_time; while( (diff_time = time(0) - atime) > 0 ) sleep(diff_time); 离开这个循环,就到了预定的...
假如,想在2009年8月29日8时8分8秒启动某个线程,该怎样设定这个定时器?
|
设你定时的时间为 atime;
long diff_time;
while( (diff_time = time(0) - atime) > 0 )
sleep(diff_time);
离开这个循环,就到了预定的时间了,就可以开始你要做的事情。
上面只所以需要while循环,是因为,可能有其他的因素,导致sleep没有到指定的时间就离开了。所以需要循环的条件判断。
|
|
把创建线程部分放到定时器里面实现不行么?
|
你的程序肯定不止一个线程, 你可以在其他线程里判断时间,如果时间到了,就启动你要启动的线程阿。
|
正解
|
localtime
这个函数
这个函数
|
time(&t);
tm_DateTime = localtime(&t);
tm_DateTime = localtime(&t);
|
添加个定时器啊。
然后定时判断一下到点没有,到了就创建线程。
也可以用信号量PV操作来做,一个判断到点没有,一个执行。
然后定时判断一下到点没有,到了就创建线程。
也可以用信号量PV操作来做,一个判断到点没有,一个执行。