Welche integrierten Perl-Funktionen sind atomar?

8

Ich schreibe etwas threaded Code und ich frage mich, was Perl eingebaut Funktionen und Operatoren sind atomare und sicher für eine gemeinsame Variable ohne zu sperren verwenden. Zum Beispiel wurde mir gesagt, ++ , -- , += und dergleichen sind nicht, weil sie als zwei Operationen implementiert sind.

Gibt es irgendwo eine Liste? Insbesondere sind push , pop , shift , unshift und splice für ein gemeinsames Array atomic?

Danke.

    
Schwern 23.10.2012, 22:30
quelle

1 Antwort

6

Richtlinie: Wenn es sich bei einer Operation um eine Verknüpfung handelt, ist sie atomar. Sonst ist es nicht.

Kontrolle:

%Vor%

Ausgabe:

%Vor%

push @a, 1; anstelle von ++$q :

%Vor%     
ikegami 23.10.2012, 23:17
quelle

Tags und Links