Chinaunix

标题: sleep()与阻塞函数 是否会一直占用cpu ? [打印本页]

作者: CAIYUE10720795    时间: 2013-04-29 12:30
标题: sleep()与阻塞函数 是否会一直占用cpu ?
在应用程序中,sleep() 或者 一些读写,同步的阻塞函数,当资源请求没有满足时会阻塞等待,那么在这等待是的时间中会占用cpu 时间吗,sleep () 函数呢
作者: efengyu    时间: 2013-04-29 17:03
当然不会,不然一个程序sleep 10s,系统岂不是要阻塞10s
作者: CAIYUE10720795    时间: 2013-04-29 21:00
回复 2# efengyu


    不是还有时间片吗? 这个也解释不了啊
作者: mrpre    时间: 2013-05-04 23:49
我觉得占用cpu
作者: CAIYUE10720795    时间: 2013-05-05 11:44
为什么,能不能详细点啊回复 4# mrpre


   
作者: mrpre    时间: 2013-05-05 22:25
睡眠就是往等待队列中去添加项 吧,所以应该不占用cpu。回复 5# CAIYUE10720795


   
作者: 匿云楼主    时间: 2013-05-05 22:40
应该不会占用cpu,在sleep期间,cpu会调度其他进程
作者: 沉水之鱼    时间: 2013-05-06 15:35
不会的,在sleep期间会进行上下文切换,cpu会调度别的进程。 只有自旋锁是会一直占用CPU的!
作者: CAIYUE10720795    时间: 2013-05-07 11:09
一看这个回答,我就知道我遇到真正的高手了。。。 回复 8# 沉水之鱼


   
作者: zealane    时间: 2013-05-08 20:27
sleep是让出cpu。它占的时间仅仅是cpu切换的时间
作者: fsp1991    时间: 2013-05-12 01:07
sleep会放走CPU的,大部分的阻塞函数都不会占用cpu吧
作者: wonghoifung    时间: 2013-05-12 08:32
不会。。。。。。。
作者: free_tend    时间: 2013-06-06 20:55
学习了·············
作者: whutchao    时间: 2013-08-17 22:48
学习了  。。。。  
作者: 不说1234    时间: 2013-08-21 23:44
delay会。sleep不会
作者: 天赐之道    时间: 2013-09-26 22:24
sleep()是会占用cpu的,只不过系统在不同的进程间不停的切换,而在执行sleep()的进程中,很明显会一直占用cup,直到sleep()结束。
作者: dafa2007    时间: 2013-09-27 15:04
zealane 发表于 2013-05-08 20:27
sleep是让出cpu。它占的时间仅仅是cpu切换的时间


使用sleep之后是把当前的进程睡眠了,从而把CPU让出来给其它进程使用。  等睡眠时间到之后,再加入到进程调度的队列中,等待CPU调度。
作者: whutzhou    时间: 2013-09-27 16:23
sleep就是放弃CPU 让当前进程状态改为睡眠,怎么还会占用CPU呢 CPU这个时候就调度其它就绪的进程了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2