Hello Hopsel,
hi johny7,
What is a "Nebenläufigkeitsproblem" und was meinst du damit bzw. worin liegt es jetzt hier?
if(exists($beer))
{
drink($beer);
}
>
> Benutzer 1 Benutzer 2
>
> 0: [Skriptaufruf]
> 1: `exists($beer)`{:.language-php} -> `true`{:.language-php} [Skriptaufruf]
> 2: `exists($beer)`{:.language-php} -> `true`{:.language-php}
> 3: `drink($beer) // *schlürf*`{:.language-php}
> 4: `drink($beer) // kein *schlürf*, da Bier schon weg ;-(`{:.language-php}
nett erklärt :-)
>
> Problem verstanden? =)
>
> Falls dich das Thema interessiert:
> <http://de.wikipedia.org/wiki/Threadsicherheit>
> <http://de.wikipedia.org/wiki/Semaphor_%28Informatik%29>
> <http://de.wikipedia.org/wiki/Mutex>
Das Problem tritt in Multiuserumgebungen prinzipiell immer auf, wenn eine Funktion, die auf äußere Daten zugreift, zweimal aufgerufen wird und in der Zeitlücke zwischen den Aufrufen bei anderen Prozessen nicht verhindert, dass diese die Daten ändern können.
Oder auch anders ausgedrückt:
- wenn zwischen Abfrage und Aktion eine Zeitlücke besteht.
- wenn eine Zuweisung von einem Funktionsaufruf abhängig gemacht wird
und diese Zusweisung dann erst durch erneuten Funktionsaufruf durchgeführt wird
Das wäre hier der Fall, wenn die Funktion auf gemeinsame Daten zugreift.
Das nennt man dann auch TOCTOU-Problem
<http://en.wikipedia.org/wiki/Time-of-check-to-time-of-use>
(neuerdings mit zwei 'T' in der Mitte) \*g\*
<http://www.owasp.org/index.php/File_Access_Race_Condition:_TOCTOU>
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
![](http://selfhtml.bitworks.de/Virencheck.gif)
--
☻\_
/▌
/ \ Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>