使用sleep

时间:2016-06-23 18:30:26

标签: c multithreading pthreads sleep scheduling

我产生了四个可分离的线程,并且在每个线程中我给予1秒睡眠(睡眠是我的应用程序要求)因为该操作系统仅安排2个线程和其他两个线程是理想的但如果我删除睡眠所有线程都被安排通过操作系统但我的应用程序要求是每个线程一旦完成其任务就应该进入睡眠模式

我已经尝试过睡眠,nanosleep并在pthread中设置线程属性,优先级和循环调度但不成功。

请建议我还能做些什么来解决我的申请问题。

1 个答案:

答案 0 :(得分:0)

现在我使用以下逻辑为每个线程提供一秒间隔,并从我的代码中删除睡眠并解决问题(现在所有四个线程都已安排)。

(void) gettimeofday (&nowtime, NULL);
unsigned long long currentTime = (nowtime.tv_sec * 1000000) + nowtime.tv_usec;
unsigned long long FutureTime =  ((nowtime.tv_sec + interval) * 1000000) + nowtime.tv_usec;
while(FutureTime >= currentTime)
{
    (void) gettimeofday (&nowtime, NULL);
    currentTime = (nowtime.tv_sec * 1000000) + nowtime.tv_usec;
}