你是做实验了还是看书了,哪里说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;
}
sleep(秒)~~
sleep(secs)