Eigentlich hängt diese Frage mit dieser Frage zusammen: Wie führt man in PHP eine geplante Benachrichtigung und Veröffentlichung rechtzeitig durch?
In der Vergangenheit sagten Lehrer immer, dass man beim Schreiben von Code niemals Endlosschleifen schreiben sollte. Das ist der größte Fehler. Dieses Konzept war schon immer tief in meinem Kopf verwurzelt. Wenn ich also alle Arten von Endlosschleifen sehe, fühle ich alle Arten von Verachtung und Verstrickung.
Aber ich habe festgestellt, dass viele Dinge tatsächlich Endlosschleifen verwenden:
php-resque Da ist eine Endlosschleife drin. Als ich es sah, verlor ich sofort meine Gefühle
Nachdem man sich das Funktionsprinzip des Browsers angesehen hat, ist die JS-Ereignisschleife tatsächlich eine Endlosschleife, und der Kernelcode C++ scheint eine Endlosschleife zu sein
……
Ich weiß nicht, wie viele Dinge sich in einer Endlosschleife befinden
Stimmt es, dass sich unser Computer seit dem Einschalten in einer Endlosschleife befindet? Bitte helfen Sie mir, das zu klären. Wenn es keine Endlosschleife gibt, ist unser Code tatsächlich tot. Wenn niemand die Website besucht, ist er tot. Welche Ereignisse/Signale lösen Rückrufe aus, wenn sie eintreten, und wie werden sie implementiert? Ist es auch eine Endlosschleife?
Vielleicht sind wir Menschen in einer Endlosschleife, in der wir ständig Informationen erhalten und dann Feedback geben. Wenn Sie mich sonst anrufen und ich sofort antworten kann, glauben Sie dann wirklich, dass Sie die Möglichkeit haben, mich anzurufen? zurück? lustig! Ich habe zugehört, okay?
Ich hoffe, Gott kann die Verwirrung beseitigen, ^_^
Hinzugefügt:
Als ich diese Informationen las, sah ich oft diese Worte:
libevent
libev
PCNTL
EventLoop
timerfd
epoll
kqueue
select
poll
Bitte fragen Sie den Meister, welche Informationen ich lesen sollte und welche Bücher ich „Linux/UNIX-Netzwerkprogrammierung“ lesen sollte
Danke!
持续工作就是死循环吗,OS会把CPU运行时间分片,配分给不同进程,每隔一会OS会收回控制权,然后再派出去,就这样循环。
但是这个循环不是死的,你可以通过点击
关机
来结束这个循环。是的,Eventloop需要持续的监听,这种监听只能通过这种方式实现,而我们看到的就是
事件发生
=>执行回调
这样自然的事情了,这是一种抽象。但是也不是死的,你可以关闭浏览器来结束这个循环。
我认为人更像是一台状态机(FSM),而不是什么死循环。
根据输入改变状态,从而输出值(人的对话)
我不知道人脑是不是顺序执行指令的,但是人能处理边界模糊的事情,比如开车,做饭,各种语言的听说读写等等,人能随时从某个思考中抽出来去想另外一件事,换言之充斥着大量中断信号,或许不存在死循环这种事,因为可以随时ban掉。
看看计算机组成和操作系统的原理和实现如何?
《Ruby元编程》里的一句话说的很好,我感觉放到这里很合适
我认为死循环也是一样,存在即为合理,只是看你如何去用而已,在没有更好的解决方案的时候,解决问题很重要,在有更好的解决方案的时候,代码优雅同样重要,根本就没有什么死循环,从来只有循环而已。
死循环 != 无限循环 != 空循环
死循环,是bug,会导致卡死
无限循环,比如:事件循环
空循环,比如:spin wait
事实上你可以自杀来退出循环不解释
不要胡思乱想,屁事都扯上哲学是很中二的行为
不要成为民间哲学家
写过单片机代码吗?
就是while(1)
退出靠断电或者中断
还有看门狗(watch dog)
可以认为操作系统就是个死循环
这个问题太宏大,不好解释
但你学编程,还是要尽量避免不必要的死循环。程序有始有终,思路清晰最好。
死循环不如说元循环和其他循环一样有始有终,只不过其他循环是元循环的一段,走过就没了,死循环走过了回到了原点。