如何使Linux下的一个线程暂停几秒?

没人知道吗?满意答案加分..
2025-04-28 23:36:16
推荐回答(3个)
回答1:

你是做实验了还是看书了,哪里说sleep会导致其他线程休眠呢?(windows下MFC里面随意sleep似乎会导致这样?)
下面的短程序拿回去编译下,就知道到底sleep会不会使得其他线程也休眠了。

pthread_cond_wait当然可以使得线程休眠,只是你还得在另外一个线程中使得pthread_cond_wait的等待的条件满足才可以使得介个线程返回,不觉得单纯为了等待多开一个线程会很麻烦?那你愿意别的方式也可以阿...POSIX的互斥、信号量都能控制线程,不是简单的等待功能。

#include
#include
#include

void thread1(void)
{
int i=0;
while(i<10)
{
sleep(3);

printf("t1\n");
fflush(stdout);
i++;
}
}
void thread2(void)
{
int i=0;
while(i<10)
{
sleep(1);

printf("t2\n");

fflush(stdout);
i++;
}
}
int main()
{
pthread_t t1,t2;
pthread_create(&t1,NULL,(void*)thread1,NULL);
pthread_create(&t2,NULL,(void*)thread2,NULL);
pthread_join(t1,NULL);
pthread_join(t2,NULL);

return 0;
}

回答2:

sleep(秒)~~

回答3:

sleep(secs)