To czytam z opisu threads::shared
:Perl wspólne zmienne niepodzielność i widoczność
Domyślnie, zmienne są prywatne do każdego wątku, a każdy nowo utworzony wątek dostaje prywatną kopię każdej istniejącej zmiennej. Moduł ten pozwala na udostępnianie zmienne w różnych wątków ... (more)
Powiedzmy mam wspólna zmienna tak:
my $var :shared;
$var = 10;
Oznacza to zmienna istnieje tylko jeden raz dla wszystkich wątków tworzę .
Teraz o atomowości i widoczności:
Jeśli thread_A przypisuje nową wartość powiedzmy 11:
$var = 11;
To jest zagwarantowane, że thread_B (i wszystkie inne wątki mógłbym utworzone) zobaczy wartość 11? A czy przypisanie wykonywane jest atomowo?
Czy najpierw mamy coś takiego w Javie, aby uzyskać blokadę, a następnie wykonać zadanie i zwolnić blokadę. I tylko wątki używające tej samej blokady są gwarantowane, aby zobaczyć zaktualizowaną wartość?
Czy to zachowuje się jak zmienne prymitywne zmienne w Javie?