1UnitedPower: Multithreading in JavaScript

Beitrag lesen

Meine Herren!

Die meisten Operationen in JavaScript fallen in diese Kategorien:

  1. Interaktion mit dem DOM; Layouting und Painting
  2. Input/Output (hauptsächlich Festplatte und Netzwerk)
  3. Mathematische Berechnungen, Datentransformationen
  1. und 2. laufen möglicherweise non blocking, bleiben aber afaik in einem Thread.

Jein, Browser verwalten viele eigene Threads/Prozesse (1,2), die teilweise auch aufeinander warten müssen. Die Zuordnung was asynchron und was synchron abläuft bzw. was sich gegenseitig blockt und was parallel ausgeführt werden kann zu echten Threads/Prozessen kann nicht so trivial vorgenommen werden. Beispielsweise muss der Parser stets darauf warten, bis von der Netzwerk-Schicht neue Daten geliefert werden. Trotzdem werden die beiden Aufgaben von Browser in separaten Threads bearbeitet (3).

Quellen:

  1. http://www.chromium.org/developers/design-documents/multi-process-architecture

  2. http://www.chromium.org/developers/design-documents/threading

  3. http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/#The_rendering_engines_threads

--
“All right, then, I'll go to hell.” – Huck Finn