Ist Webworker selbst Multi-Thread?

8

z.B.

%Vor%

Und innerhalb des Webwokers, vorausgesetzt, es gibt eine Menge von Problemen, mit denen umzugehen ist, würde worker.postMessage(data2) blockieren, bevor das data1

beendet wird     
Lanston 08.03.2012, 06:56
quelle

1 Antwort

5

Ein einzelner Arbeiter führt seine Aufgabe in der Warteschlange aus, d. h. eine Aufgabe zur Zeit. Versuchen Sie das folgende Beispiel:

%Vor%

worker.js:

%Vor%

Ausgabe:

%Vor%

Die Aufgaben werden immer in der Reihenfolge beendet, d. h. zuerst die langsame, dann die schnelle. (Wenn die Aufgabe parallel ausgeführt würde, würde die zweite Aufgabe zuerst mit einem deutlichen Abstand beendet werden.)

(Um es klar zu stellen: Das Aufrufen von postMessage blockiert immer im Ausführungskontext (wie bei jedem Funktionsaufruf), gibt aber "sofort" zurück, da das Veröffentlichen der Nachricht selbst sehr schnell ist. Das ist wahrscheinlich nicht das, was Sie gefragt haben.)

Hinweis: Chrome löst eine Sicherheitsausnahme aus, wenn Sie versuchen, die Datei worker.js von der lokalen Festplatte zu laden, funktioniert in Safari & amp; Firefox.

    
jholster 08.03.2012, 11:16
quelle

Tags und Links