1
kop1989 2020-07-27 18:06:47 +08:00 1
我的理解是:会,但是比正常执行时占的少很多。
因为 sleep 时释放了 cpu 的控制,但是会埋一个计时器,所以 sleep 时 cpu 的占用就等于计时器的占用。 |
2
arloor 2020-07-27 22:03:53 +08:00
跑题一下,写了一个 python 脚本,for 循环最后 time.sleep(120),top 看了下负载,一直占用 7%cpu 。
这 python 的 sleep 很鸡肋啊 |
3
oneisall8955 2020-07-27 23:34:37 +08:00 via Android
借楼,JAVA 里,使用 http 访问第三方接口等待对方接口返回这段时间的 IO 阻塞占用 CPU 吗?
|
4
supermoonie 2020-07-27 23:50:37 +08:00 via iPhone
@oneisall8955 应该是不占用吧,阻塞住的应该是 io,等待数据返回
|
5
astkaasa 2020-07-28 03:32:32 +08:00 via iPhone
不会,sleep(0)就是马上让出 cpu
|
6
wzzyj8 2020-07-28 07:36:34 +08:00 via iPhone
sleep 不是应该进程丢 block queue,完成其他操作再拉起吗。因为非 busy waiting 所以不占用才对。如果前后有 while loop 包裹的话应该是循环部分占的 cpu 吧
|
8
arloor 2020-07-28 13:14:33 +08:00
|
10
arloor 2020-07-28 13:22:06 +08:00
top - 13:20:58 up 45 days, 17:09, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie top - 13:21:12 up 45 days, 17:09, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie top - 13:21:14 up 45 days, 17:09, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie top - 13:21:44 up 45 days, 17:09, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.0 us, 1.5 sy, 0.0 ni, 94.0 id, 0.0 wa, 0.5 hi, 0.7 si, 1.3 st MiB Mem : 1989.0 total, 206.5 free, 612.6 used, 1170.0 buff/cache MiB Swap: 2118.0 total, 2097.3 free, 20.7 used. 1096.4 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 653139 root 20 0 50916 11620 6548 S 6.6 0.6 0:05.49 python3 nat.py /etc/nat.conf |