2010-07-22 4 views
6

Mam następujący kod Perl:Czy przesuwasz zmienną na tablicę działającą w trybie wątków?

push(@myArray, $myValue); 

jest operacją atomową, albo będę musiał użyć blokady, jeśli wiele wątków będzie wykonanie tej samej operacji na wielu wątków?

+0

Wygląda na to, że chcesz obiekt Thrread :: Queue. – MkV

+0

Co to znaczy "ta sama operacja"? Czy @ myArray jest udostępniony? –

Odpowiedz

2

Bezpieczeństwo wątków większości funkcji w perlu zależy od ich podstawowych procedur C, aw przypadku wbudowanych, takich jak push, nie ma wzmianki o bezpieczeństwie wątków, więc należy założyć, że nie jest.

Zapoznaj się ze stroną podręcznika perlthrtut, w szczególności z sekcją "Podstawowe semafory". Używając semafora możesz wymusić wzajemne wykluczenie w dowolnych sekcjach kodu.

Powiązane problemy