Abgesehen von der Tatsache, dass Erlang speziell für die Ausführung in gleichzeitigen / parallelisierten / verteilten Situationen entwickelt wurde, werden folgende zwei Haupttechniken eingesetzt, um dies zu ermöglichen:
Keine Nebenwirkungen:
Das heißt, wenn Sie einer Funktion Daten geben, für die sie ausgeführt werden soll, wirkt sich dies nur in sehr strengen Fällen auf andere Elemente im System / im laufenden Prozess aus. Dies bedeutet, dass, wenn Sie eine Funktion 300 Mal gleichzeitig ausführen, keine dieser 300 Ausführungen der Funktion eine der anderen beeinflusst.
Die Implementierungstechnik zur Sicherstellung, dass keine Nebenwirkungen auftreten, wird als "Unveränderlichkeit" bezeichnet, was ungefähr bedeutet, dass sie nicht mutiert (geändert) werden darf. Dies bedeutet, dass der Wert dieser Variablen möglicherweise nicht geändert wird, sobald Sie eine Variable erstellen. Erlang implementiert dieses Verhalten mit "Einzelzuweisung". Nachdem Sie einer Variablen einen Wert zugewiesen haben, können Sie ihr möglicherweise keinen Wert mehr zuweisen.
X = 1.
X = 2. // This is not a valid operation
Dies stellt sicher, dass kein Code versehentlich den Wert von X ändert, was zu einer Race-Bedingung führt. Daher ist er von Natur aus threadsicher und die gleichzeitige Verwendung wird trivial. Dies ist ein sehr ungewöhnliches Verhalten unter Softwaresprachen und die größte Art und Weise, wie Erlang es schafft, für die gleichzeitige Ausführung so gut geeignet zu sein.
Das Schauspielermodell:
Dies ist eine besondere Art der Modellierung, die gezeigt hat, dass die Implementierung und Verwaltung der gleichzeitigen Verarbeitung für Entwickler sehr einfach ist. Direkt aus Wikipedia (http://en.wikipedia.org/wiki/Actor_model):
Das Schauspieler-Modell übernimmt die Philosophie, dass alles ein Schauspieler ist. Dies ähnelt der Objektphilosophie, die von einigen objektorientierten Programmiersprachen verwendet wird, unterscheidet sich jedoch darin, dass objektorientierte Software normalerweise sequentiell ausgeführt wird, während das Actor-Modell von Natur aus gleichzeitig ausgeführt wird. Ein Akteur ist eine Recheneinheit, die als Antwort auf eine empfangene Nachricht gleichzeitig: eine endliche Anzahl von Nachrichten an andere Akteure senden kann; eine endliche Anzahl neuer Akteure schaffen; Geben Sie das Verhalten an, das für die nächste empfangene Nachricht verwendet werden soll. Es gibt keine angenommene Reihenfolge für die obigen Aktionen und sie könnten parallel ausgeführt werden. Die Entkopplung des Absenders von gesendeten Kommunikationen war ein grundlegender Fortschritt des Actor-Modells, das asynchrone Kommunikations- und Kontrollstrukturen als Muster für die Weitergabe von Nachrichten ermöglichte.