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

没人知道吗?满意答案加分..... 没人知道吗?
满意答案加分..
展开
 我来答
handsoul
推荐于2016-11-05 · TA获得超过955个赞
知道小有建树答主
回答量:500
采纳率:0%
帮助的人:754万
展开全部
你是做实验了还是看书了,哪里说sleep会导致其他线程休眠呢?(windows下MFC里面随意sleep似乎会导致这样?)
下面的短程序拿回去编译下,就知道到底sleep会不会使得其他线程也休眠了。

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

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

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;
}
追问
今天看到我们老师用了nanosleep(),这些API区别大吗?网上查了知道个大概,usleep()和sleep()系统内部都是调用了nanosleep().....
关于pthread_cond_wait()可以给个易明白的例子吗?谢谢啦
追答
各种sleep区别不是很大...(我这话说的不太负责任,不过我没觉得有什么大差别...需要不同而已,sleep就是秒级的,msleep就是毫秒,估计都几乎是用anosleep做出来的吧)

自己man 一下pthread_cond_wait不就出来了么..

int pthread_cond_wait(pthread_cond_t *restrict cond,
pthread_mutex_t *restrict mutex);
int pthread_cond_timedwait(pthread_cond_t *restrict cond,
pthread_mutex_t *restrict mutex,
const struct timespec *restrict abstime);
The pthread_cond_timedwait() and pthread_cond_wait() functions shall block on a condition variable. They shall be called with mutex locked by the calling thread or undefined behavior results.

参数中的cond是一个条件表达式..
下面这段E文是man手册里面的,意思是调用这个函数之前,先将参数中的mutex变量锁住,然后再调用这个API,这个thread就会阻塞在这里,当cond(手册中说叫condition variable,条件变量)为真时,这个thread会继续运行...
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liumingkong
2011-06-14 · 超过11用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:37.4万
展开全部
sleep(秒)~~
追问
sleep()会使该使所有的线程睡眠的.....
好像usleep()可以
pthread_cond_timedwait()也可以
不确定着....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiaoyingtian
2011-06-22
知道答主
回答量:13
采纳率:0%
帮助的人:9.7万
展开全部
sleep(secs)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式