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?
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?
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.
Wygląda na to, że chcesz obiekt Thrread :: Queue. – MkV
Co to znaczy "ta sama operacja"? Czy @ myArray jest udostępniony? –