+ -
当前位置:首页 → 问答吧 → 为何一调用pthread_cond_wait cpu就会变成100%?

为何一调用pthread_cond_wait cpu就会变成100%?

时间:2011-03-05

来源:互联网

发现有一处pthread_cond_wait一被调用后,cpu就会变成100%。一旦在这之前return则不会发生,已经确认的确已经阻塞。因为进入该函数后未继续执行到下面的断点。

问题:什么情况下会出现这种情况呢?pthread_cond_wait 挂起后不是不占用cpu的吗?怎么现在成了忙等了。

使用的linux c 开发的。

作者: zhuagk12   发布时间: 2011-03-05

为了避免是由于其它线程影响的。
特别作了下面的测试:
while(1){
sleep(60); //这里下个断点A
pthread_cond_wait(read,lock);
sleep(60);//这里下个数点B
}
发现在断点A发生后60秒内CPU正常,60秒后变为100%,之后由另一线程唤醒该线程
在断点B执行后60秒内CPU正常。基本可以确定是pthread_cond_wait的问题。

作者: zhuagk12   发布时间: 2011-03-05