suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Kann eine Endlosschleife verwendet werden? Oder leben wir tatsächlich in einer Welt endloser Zyklen?

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:

  1. php-resque Da ist eine Endlosschleife drin. Als ich es sah, verlor ich sofort meine Gefühle

  2. 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!

高洛峰高洛峰2739 Tage vor860

Antworte allen(6)Ich werde antworten

  • 迷茫

    迷茫2017-05-31 10:36:05

    是不是我们电脑从开机后就一直是个死循环啊,CPU是不是就是死循环在那儿一直工作啊?

    持续工作就是死循环吗,OS会把CPU运行时间分片,配分给不同进程,每隔一会OS会收回控制权,然后再派出去,就这样循环。

    但是这个循环不是死的,你可以通过点击 关机 来结束这个循环。


    那些什么事件/信号来了就会触发回调,是怎么实现的呢,也是死循环吗?

    是的,Eventloop需要持续的监听,这种监听只能通过这种方式实现,而我们看到的就是 事件发生 => 执行回调 这样自然的事情了,这是一种抽象。

    但是也不是死的,你可以关闭浏览器来结束这个循环。


    或者我们人就是个死循环,再不断的接受信息,然后作出反馈,不然你喊我,我能立即回答,你真以为是你通知我了吗,是你拥有回调我的能力吗?搞笑!是我一直在监听着好吗?

    我认为人更像是一台状态机(FSM),而不是什么死循环。

    根据输入改变状态,从而输出值(人的对话)

    我不知道人脑是不是顺序执行指令的,但是人能处理边界模糊的事情,比如开车,做饭,各种语言的听说读写等等,人能随时从某个思考中抽出来去想另外一件事,换言之充斥着大量中断信号,或许不存在死循环这种事,因为可以随时ban掉。


    求大神解惑一下,我应该去看点什么资料,找点什么书看看

    看看计算机组成和操作系统的原理和实现如何?

    Antwort
    0
  • PHPz

    PHPz2017-05-31 10:36:05

    《Ruby元编程》里的一句话说的很好,我感觉放到这里很合适

    根本没有什么元编程,从来只有编程而已。

    我认为死循环也是一样,存在即为合理,只是看你如何去用而已,在没有更好的解决方案的时候,解决问题很重要,在有更好的解决方案的时候,代码优雅同样重要,根本就没有什么死循环,从来只有循环而已。

    Antwort
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-31 10:36:05

    究竟能不能用死循环?

    死循环 != 无限循环 != 空循环

    死循环,是bug,会导致卡死
    无限循环,比如:事件循环
    空循环,比如:spin wait


    或者其实我们就活在一个死循环的世界中?

    事实上你可以自杀来退出循环

    不解释
    不要胡思乱想,屁事都扯上哲学是很中二的行为
    不要成为民间哲学家

    Antwort
    0
  • 黄舟

    黄舟2017-05-31 10:36:05

    写过单片机代码吗?
    就是while(1)
    退出靠断电或者中断
    还有看门狗(watch dog)

    Antwort
    0
  • phpcn_u1582

    phpcn_u15822017-05-31 10:36:05

    可以认为操作系统就是个死循环

    这个问题太宏大,不好解释

    但你学编程,还是要尽量避免不必要的死循环。程序有始有终,思路清晰最好。

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-05-31 10:36:05

    死循环不如说元循环和其他循环一样有始有终,只不过其他循环是元循环的一段,走过就没了,死循环走过了回到了原点。

    Antwort
    0
  • StornierenAntwort