pinews 最近的时间轴更新
pinews

pinews

V2EX 第 256313 号会员,加入于 2017-09-25 17:38:05 +08:00
正常的 while true 为什么不加 sleep 也不会耗尽 cpu?
程序员  •  pinews  •  153 天前  •  最后回复来自 ben1024
16
光大信用卡也太不靠谱了,怎么办?
问与答  •  pinews  •  211 天前  •  最后回复来自 pinews
12
pinews 最近回复了
@ben1024 阻塞就是超时等待吧?

我借之前一个网友去快递点取快递的例子总结下。

第一个是,去了发现没有就回来,然后马上再接着去(很累很蠢,因为本来是预计已经到了,只取一次的)
第二个是,去了发现没有就回来,过一会( sleep )再去(不累了,但是会不及时)
第三个是,去了返现没有,就在那里等,如果在这个时间里没等到就回来,然后接着去,但是很有可能等到,或者干脆等不到就不回来,直到等到才回去(不累也很及时,但是要快点递支持在里面等)

例子不是很恰当,大概是这个意思吧,那个 iowait 应该是第三种吧,所以 while true 没 sleep 能又快又轻松完成任务。
@wangxn 如果 while(true){};那是不是他把所有时间片都占用了,所以会 100%
@julyclyde iowait 是啥?大概了解了一下,如果 cpu 虽然不用干活,但是也不能干别的,那有什么区别?
@systemcall 程序是怎么调用中断的?比如消息队列,我到 github 上搜源代码,看不懂,也没找到什么想要了解的信息
我说正常的 while true 是正常使用的。比如 kafka 的 php 示例就是 while true 我看 cpu 也没什么变化,如果跑满 4 核不是要占到 25 33 ?
160 天前
回复了 zooo 创建的主题 问与答 空气中有很大的疑似汽油味...
不是有可燃气体检测仪器?放在家里,如果天然气泄漏会发警报,不知道物业怎么检测的?
我也会遇到,大约就是卡死了,特别是国外的数据库,特别容易卡死,还有一点,编辑连接->高级->保持连接间隔(秒),默认 240,可以试着改小,比如 30 。
哦 感谢大神们
166 天前
回复了 jtping 创建的主题 程序员 购物车结算问题
@jtping 如果所有商品减库存都是相同的,比如-1,的确可以一起 update,明白了

那就考虑缓存数据库呗,期待你的结果。
对了 php 有个 ignore_user_abort,可以让浏长时间执行的程序在浏览器停止关闭之后继续执行。
好像是这样,不知道说的对不对,TCP 建立连接后,发送一条信息,就等待对方的回应,如果对方的回应中有“结束连接”,就关闭连接,短连接默认是带“结束连接”的,为了在程序执行完,按顺序接下来要发送“结束连接”之前用一个 while true 阻塞接下来的行为。

php cgi 也就是 web 按 http 协议默认是执行完就要回应对方。
cli 是本身是个长连接?没超时限制,没自动结束连接?

在 php 程序请求其他 socket 加了 p 就是长连接,但默认有超时,为了超时要设置 socket 超时为不限时,如果不加 p 就是一次性的?

不知道对不对。。。什么都是在摸索。。。
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   963 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms · UTC 21:18 · PVG 05:18 · LAX 14:18 · JFK 17:18
♥ Do have faith in what you're doing.