Frage

Ich habe sehr begrenztes Wissen über Erlang bekam, aber soweit ich verstehe, kann es „Prozesse“ mit einem sehr niedrigen Kosten erzeugen.

So frage ich mich, was sind die "Prozesse" hinter den Kulissen?

Sind sie Fibers? Themen? Fortsetzungen?

War es hilfreich?

Lösung

Auch aus der Erlang doc:

Erlang Prozesse sind leicht (Wachsen und schrumpfen dynamisch) mit geringer Speicherbedarf, schnell zu erstellen und beenden, und die Zeitplanung Overhead gering ist.

Quelle: http://www.erlang.org/doc/reference_manual/processes .html

Sie können auch einen Blick auf diese haben wollen:

http://www.defmacro.org/ramblings/concurrency.html

Wenn man über Erlang Prozesse zu sprechen, heißt es:

Erlang Prozesse sind leicht Threads. Sie sind sehr billig zu starten und zerstören und sind sehr schnell zu Umschalten zwischen weil unter der Motorhaube sie sind einfach Funktionen. Ein typisches Erlang-System auf einem modernen Laufe Desktop-Computer kann zwischen viele Zehntausende solcher Prozesse. Prozesse werden alle paar geschaltet Dutzend Funktionsaufrufe, die macht schaltet weniger körnig sondern spart ein enorme Menge an Zeit, die normalerweise verschwendete auf Kontextwechsel.

Andere Tipps

Ich habe gefunden, keine endgültige Quelle, sondern von dem, was ich verstehe:

  • Es gibt einen Scheduler (zB oder mehrere Disponenten, dass Akt kooperativ), die bestimmt, welche erlang Prozess zu starten, auf dem OS Gewinde.

  • Diese Verfahren haben eine wachstumsfähige Stapel (vielleicht eine Präambel in jeweils Funktionen dass zuordnet, wenn nötig Stapel), so dass sie nicht verbrauchen zu viel Speicher, wenn sie es brauchen.

  • Sie geben zurück an den Scheduler je nachdem, ob sie sind Warten auf Daten oder haben für eine ausreichende Menge an Zeit ausgeführt (Vielleicht Präambelkode in einigen Prüfungen Funktionen, wie viel Zeit, um zu sehen verstrichen ist). Im Gegensatz zu Fäden, kommen sie nicht vorbelegt?

  • Jeder Prozess zuordnet Speicher von verschiedenen Seiten oder von einem verschiedene allocator, so ist es nicht möglich, den gemeinsamen Speicher zu (in ähnliche Art und Weise, dass OS vermeiden Sharing-Speicher verarbeitet).

  • Vermutlich hat auch getrennte Verteilern oder Seiten pro erlang Prozess würde auch helfen mit Garbage-Collection und in dem Fall, dass der Prozess endet, dann ist die Seiten können, ohne dass zu tun, jede Garbage Collection zurückgeführt werden: http://prog21.dadgum.com/16.html

Im Grunde sind sie Threads;) Ein Adressraum für sie

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top