Ich spiele gerade mit der Idee, IFRAMEs zu verwenden, um eine sehr einfache Multithreading-Engine zu implementieren. Meine ersten Ergebnisse zeigen mir jedoch, dass das Ausführen in Threads langsamer ist als das Ausführen in einem einzelnen Thread.
Mein Test ist:
Einfacher Thread
%Vor%Mehrere Threads
%Vor%Wie zu sehen ist, teile ich nur die Arbeitslast unter IFRAMEs auf (der obige Code dient nur dazu, ein besseres Bild von dem zu geben, was ich mache, es funktioniert nicht).
Also ich denke, dass selbst mit FRAMEs FireFox immer noch nur eine JS-Engine hat? Ist diese Annahme richtig? (meine Forschung dumm zu machen), sind andere Browser anders?
Machen Sie einen schnellen googles Ich habe diesen Artikel: Ссылка
Allerdings sind die hier erzielten Leistungsverbesserungen mehr als wahrscheinlich, nur parallele http-Anfragen statt der Verarbeitungsleistung zu erledigen.
Danke für Ihre Einsichten.
Guido
Sehen Sie sich den HTML5 Web Workers Standard an, um zu sehen, wie JavaScript-Threads aussehen sollten. Dies ist in Firefox 3.5, Safari 4 und Chrome 3 implementiert, aber nicht in IE. Wenn Sie ein Plug-in für IE-Nutzer und ältere Browser benötigen, lesen Sie den Google Gears-WorkerPool .
Nein, Javascript unterstützt im Allgemeinen kein Multithreading. Die meisten Interpreter haben keine Multi-Threading-Funktionen (genau wie PHP), wahrscheinlich aus Gründen der Portabilität.
Da jedoch die Rhino -Engine vollständig in Java geschrieben ist, kann die Thread-Klasse anzapfen , aber das wäre nur machbar, wenn Sie serverseitiges JavaScript machen.
setTimeout kann unter Umständen eine gute Lösung sein.
Es hängt davon ab, was Sie einen Thread nennen. Nein, dies wird keine Last auf andere Cores verteilen, aber es ist Multithreading, da der Thread für den Prozess an einen anderen Prozess im Code übergeben wird. Teilen Sie Ihre schweren Zyklen in Blöcke und lassen Sie sich die Rendering-Engine und andere Ereignisse ansehen.
Sie könnten versuchen, Ihre Operationen in einen setTimeout-Aufruf einzufügen.
Tags und Links javascript multithreading