나는 threads::shared
설명을 읽고이 공유 : 기본적으로펄이 변수 자성 및 가시성
, 변수는 각 스레드에 개인이며, 각각의 새로 생성 된 쓰레드는 기존의 각 변수의 개인 복사본을 가져옵니다.
my $var :shared; $var = 10;
이 변수 내가 만든 모든 스레드에 대해 한 번만 존재 의미 :이 모듈은 (more)
의 내가 이런 공유 변수가 있다고 가정 해 봅시다 ... 당신이 다른 스레드를 통해 변수를 공유 할 수 있습니다 . 자성 및 가시성에 대한 지금
: thread_A가 할당하는 경우
새로운 값의 11 가정 해 봅시다 :
$var = 11;
가 보장 그게 thread_B (내가 만든 수있는 모든 다른 스레드) 값 11이 표시됩니까? 할당은 원자 단위로 수행됩니까?
또는 Java에서 먼저 잠금을 획득 한 다음 할당을 수행하고 잠금을 해제하는 것과 같습니다. 그리고 동일한 잠금을 사용하는 스레드 만 업데이트 된 값을 볼 수 있습니까?
또는 자바의 휘발성 원시 변수처럼 동작합니까?