Ich versuche zu verstehen, wie kann synchrone Ereignisdemultiplexing eine Lösung für beschäftigtes Warten sein.Wie kann das synchrone Demultiplexen von Ereignissen eine Lösung für das viel zu lange Warten sein?
Angenommen, es gibt 3 IO-Operationen, und wir haben einen Code, der ständig durchläuft, um zu prüfen, ob einer der 3 Operationen Daten zum Lesen zur Verfügung hat.
arry = [event1 , event2 , event3]
while(arry is not empty)
{
for(i = 0 ; i <= 2 ; i++)
{
if(arry[i] has something to read)
{
read data;
}
else
{
continue to next i;
}
if(arry[i] read has finished){
remove i from arry
}
}
}
Above Pseudo-Code hat eine busy waiting.
Jetzt im synchronen Ereignis Demultiplexing oder um Reaktormuster zu sagen, ist ein Ereignis Listener da, um auf ein Ereignis zu reagieren, wie es auftritt. Aber wie kann ein Ereignis-Listener das tun, ohne zu warten?
Ich muss zugeben, ich habe noch nie von „* synchrones Ereignis Demultiplexen *“ zu hören. Können Sie auf einige Ressourcen verweisen, die es beschreiben, oder vielleicht einen Beispiel- (Pseudo-) Code in Ihre Frage einfügen? – Bergi
Sie führen nichts synchron zu JavaScript-Ereignissen durch. Aber das bedeutet nicht, dass das Reaktormuster auch nicht asynchron arbeiten kann - anstatt zu warten - zwischen den Ereignissen zu warten, planen Sie einfach Ihren Schleifencode bei jedem der erwarteten Ereignisse ein. – Bergi