<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Actor_Model</id>
	<title>Actor Model - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Actor_Model"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Actor_Model&amp;action=history"/>
	<updated>2026-05-20T00:33:18Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Actor_Model&amp;diff=2646138&amp;oldid=prev</id>
		<title>imported&gt;Jansan: /* Nachteile */ korrekte Rechtschreibung bei Durchkopplung &amp; Substantivierung</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Actor_Model&amp;diff=2646138&amp;oldid=prev"/>
		<updated>2025-01-20T06:59:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Nachteile: &lt;/span&gt; korrekte Rechtschreibung bei Durchkopplung &amp;amp; Substantivierung&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Begriffsklärungshinweis|Zum soziologischen Ansatz siehe [[Akteur-Netzwerk-Theorie]].}}&lt;br /&gt;
Das &amp;#039;&amp;#039;&amp;#039;Actor Model&amp;#039;&amp;#039;&amp;#039; (deutsch &amp;#039;&amp;#039;&amp;#039;Aktorenmodell&amp;#039;&amp;#039;&amp;#039;, auch &amp;#039;&amp;#039;&amp;#039;Aktormodell&amp;#039;&amp;#039;&amp;#039;) ist in der [[Informatik]] ein [[Modell]] für [[Nebenläufigkeit|nebenläufige]] Berechnungen bzw. [[Computerprogramm|Programm]]e. Diese werden in nebenläufige Einheiten unterteilt, die &amp;#039;&amp;#039;Aktoren&amp;#039;&amp;#039;, die ausschließlich über [[Nachrichtenaustausch]] kommunizieren. Es stellt somit eine mögliche Ausprägung des [[Message passing]]s dar und wurde erstmals 1973 von [[Carl Hewitt]], Peter Bishop und Richard Steiger beschrieben.&amp;lt;ref&amp;gt;{{Literatur |Autor=Carl Hewitt, Peter Bishop, Richard Steiger |Titel=A Universal Modular Actor Formalism for Artificial Intelligence |Sammelwerk=Proceeding IJCAI&amp;#039;73 Proceedings of the 3rd international joint conference on Artificial intelligence |Datum=1973 |Seiten=235–245 |DOI=10.5555/1624775.1624804}}&amp;lt;/ref&amp;gt; Verwendet wird das Actor Model heute u.&amp;amp;nbsp;a. in den [[Programmiersprache]]n [[Erlang (Programmiersprache)|Erlang]], [[Io (Programmiersprache)|Io]], [[D (Programmiersprache)|D]], Pony&amp;lt;ref&amp;gt;{{Internetquelle |autor=Ponylang |url=https://tutorial.ponylang.org/types/actors.html |titel=Actors · Pony Tutorial |werk=tutorial.ponylang.org |abruf=2016-08-22}}&amp;lt;/ref&amp;gt;, [[Scala (Programmiersprache)|Scala]], [[Swift (Programmiersprache)|Swift]] und [[Dart (Programmiersprache)|Dart]].&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
Aktoren sind nebenläufige Einheiten, die &amp;#039;&amp;#039;nicht&amp;#039;&amp;#039; über einen geteilten [[Speicherbereich]] verfügen, sondern ausschließlich über Nachrichten kommunizieren. Die [[Datenkapselung (Programmierung)|Kapselung]] des Zustandes des Aktors ähnelt dem Prinzip der Kapselung in der [[Objektorientierte Programmierung|objektorientierten Programmierung]]. Jeder Aktor verfügt über einen Posteingang, eine Adresse und ein Verhalten.&lt;br /&gt;
&lt;br /&gt;
Der Empfang einer Nachricht wird als &amp;#039;&amp;#039;[[Ereignis]]&amp;#039;&amp;#039; bezeichnet. Empfangene Nachrichten werden zunächst im Posteingang gespeichert. Der Aktor bearbeitet die darin enthaltenen Nachrichten nach dem&amp;amp;nbsp;[[First In – First Out|FIFO]]-Prinzip. Das Verhalten des Aktoren beschreibt Reaktionen auf Nachrichten, abhängig von deren Aufbau. Aktoren können drei verschiedene Reaktionen durchführen:&lt;br /&gt;
* Nachrichten an sich selbst oder an andere Aktoren verschicken.&lt;br /&gt;
* neue Aktoren erzeugen.&lt;br /&gt;
* das eigene Verhalten ändern.&lt;br /&gt;
&lt;br /&gt;
Der Nachrichtenaustausch erfolgt [[Asynchrone Kommunikation|asynchron]], d.&amp;amp;nbsp;h. der [[Sender-Empfänger-Modell|Sender]] einer Nachricht kann nach dem Abschicken sofort mit anderen Aktionen fortfahren und muss nicht warten, bis der Empfänger die Nachricht akzeptiert.&lt;br /&gt;
&lt;br /&gt;
Das Actor Model legt nicht fest, wie lange die Vermittlung einer Nachricht dauern darf; es wird nur definiert, dass jede Nachricht nach endlicher Zeit beim Empfänger ankommen muss.&lt;br /&gt;
&lt;br /&gt;
Überdies müssen Nachrichten nicht zwingend in derselben Reihenfolge ankommen, in der sie versendet werden. Letzteres wird in vielen [[Implementierung]]en trotzdem garantiert.&lt;br /&gt;
&lt;br /&gt;
=== Vorteile ===&lt;br /&gt;
Dass Aktoren zu einem Zeitpunkt nur eine Nachricht abarbeiten und kein anderer nebenläufiger Prozess den internen Speicherbereich eines Aktors beeinflussen darf, führt dazu, dass die Programmierung innerhalb des Aktors rein sequentiell ist. Vermutungen, die aufgrund des internen Zustandes des Aktors zu Beginn der Verarbeitung einer Nachricht getroffen wurden, behalten über die gesamte Abarbeitung der Nachricht weiterhin ihre Gültigkeit. Dies unterscheidet das Actor Model grundlegend von klassischen und verbreiteten [[Shared Memory Concurrency|Shared-Memory-Concurrency]]-Ansätzen, in denen alle nebenläufigen [[Thread (Informatik)|Thread]]s auf einen gemeinsamen Speicherbereich zugreifen und dieser in Teilen über [[Lock]]ing-Primitive wie [[Semaphor (Informatik)|Semaphore]], [[Mutex]]e und Signals geschützt wird.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile ===&lt;br /&gt;
Da Aktoren nicht über einen gemeinsamen Speicherbereich verfügen, stellen sowohl die Nachrichten, als auch der interne Speicherbereich eines anderen Aktors eine Kopie von bestimmten Werten dar. Somit liegt die gleiche Information mehrfach im Speicher vor, was zu einem erhöhten [[Speicherbedarf]] führt.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus steht das Versenden, In-die-&amp;#039;&amp;#039;Mailbox&amp;#039;&amp;#039;-Legen und Verarbeiten einer Nachricht im Actor Model einem (im besten Fall statisch gebundenen) Funktionsaufruf bei der &amp;#039;&amp;#039;Shared State Concurrency&amp;#039;&amp;#039; gegenüber. Der Aufwand ist im Actor Model somit wesentlich erhöht.&lt;br /&gt;
&lt;br /&gt;
== Verbreitung ==&lt;br /&gt;
Das Actor Model ist stark bei [[funktionale Programmiersprache|funktionalen Programmiersprachen]] verbreitet. So stellt es das grundlegende Modell für Nebenläufigkeit in der Programmiersprache Erlang dar. Eine weitere Verbreitung erhält das Modell durch Sprachen mit gemischten Paradigmen wie Scala. Auch für klassisch [[imperative Programmiersprache]]n existieren [[Implementierung]]en des Actor Models, wie z.&amp;amp;nbsp;B. Theron als Actor-[[Programmbibliothek|Bibliothek]] für&amp;amp;nbsp;[[C++]].&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Carl Hewitt, Peter Bishop, Richard Steiger&lt;br /&gt;
   |Titel=A Universal Modular Actor Formalism for Artificial Intelligence&lt;br /&gt;
   |Sammelwerk=Proceeding IJCAI&amp;#039;73 Proceedings of the 3rd international joint conference on Artificial intelligence&lt;br /&gt;
   |Datum=1973&lt;br /&gt;
   |Seiten=235–245&lt;br /&gt;
   |DOI=10.5555/1624775.1624804}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Gul Agha&lt;br /&gt;
   |Titel=Actors: A Model of Concurrent Computation in Distributed Systems&lt;br /&gt;
   |Verlag= [[MIT Press]]&lt;br /&gt;
   |Datum=1986}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Jim Larson&lt;br /&gt;
   |Titel=Erlang for Concurrent Programming&lt;br /&gt;
   |Sammelwerk=Queue&lt;br /&gt;
   |Band=6&lt;br /&gt;
   |Nummer=5&lt;br /&gt;
   |Datum=2008&lt;br /&gt;
   |Seiten=18–23&lt;br /&gt;
   |DOI=10.1145/1454456.1454463}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [https://letitcrash.com/post/20964174345/carl-hewitt-explains-the-essence-of-the-actor#_=_ Carl Hewitt erklärt die Grundlagen des Actor Modells]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Parallelverarbeitung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Jansan</name></author>
	</entry>
</feed>