Eintrittsinvarianz
# Eintrittsinvarianz

| Beteilige dich an der Diskussion! | Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der Diskussion! (+) Begründung: Siehe Disk--Doc.Heintz (Disk | ) 18:07, 26. Mai 2022 (CEST) |
| - | - | - |

Der Begriff Eintrittsinvarianz wird in einer (teilweise maschinellen) deutschen Übersetzung des US-englischen Artikels Reentrancy von Microsoft benutzt. Damit wird ein Programm-Attribut beschrieben, welches die mehrfache (quasi-gleichzeitige) Nutzung eines Programm-Codes erlaubt. Eine verständlichere Übersetzung wäre wiedereintrittsfähig wie bereits im folgenden Text oder die native Nutzung von reentrant als gängigen Fachausdruck.

In der Programmierung wird eine Routine bzw. Methode als eintrittsinvariant (englisch reentrant) oder auch wiedereintrittsfähig bezeichnet, wenn sie so implementiert ist, dass sie unterbrochen und von der Unterbrechungsroutine erneut aufgerufen werden kann, und bei der Fortsetzung nach der Unterbrechung das erwartete Ergebnis zurückliefert. Dies schließt nicht nur den Rückgabewert ein, sondern alle durch die Methode beeinflussbaren Programmparameter. Eine reentrante Methode verhält sich daher so, als wäre sie implizit in eine Transaktion gekapselt. Auch ganze Computerprogramme oder Skripte werden unter diesem Gesichtspunkt bewertet.

Für reentrante Methoden gilt oft, dass sich gleichzeitig ausgeführte Instanzen nicht gegenseitig beeinflussen können. Die Ausführung jeder Instanz läuft dann identisch ab, egal wie viele andere Instanzen es noch von dieser Methode gibt. Ziel des Designs für eine solche eintrittsinvariante Methode ist es, sicherzustellen, dass kein Teil des Programmcodes selbst durch die Methode geändert wird und dass prozesseigene Informationen wie beispielsweise lokale Variablen in getrennten Speicherbereichen gehalten werden.

Eintrittsinvariante Programmkonstrukte sind die Basis für viele preemptive Multitasking-Systeme (Threadsicherheit).

