작동, 명령문 및
필드 비교 >> 질문 :답변 : 최악 (실현 가능하지 않음) :
int
로 변경하십시오.
lock(this.locker) this.counter ;
Interlocked.Increment(ref this.counter);
진술은 다른 스레드가 보호 필드의 코드를 수행하는 것을 방지함으로써 스레드 보안을 제공합니다. 그러나 잠금은 상대적으로 느리고 다른 스레드를 차단하기에 불필요 할 수 있습니다. public volatile
작업은 원자이며 스레드는 안전하며 공유 데이터를 수정하는 가장 효과적이고 신뢰할 수있는 방법을 제공합니다. 그들은 잠금없이 한 번의 작업으로 읽기, 증분 및 쓰기 작업을 수행합니다. 작동 및 필드의 비교 :
완전한 울타리 실행에서 수행 된 작업의 작동은 여러 CPU 분류를 방지하는 데 사용됩니다.작업이 사용되어야하며, 작가는 절대 읽지 못하고 독자가 원자가 값으로 기록되지 않는 장면을 사용해야합니다.
위 내용은 여러 스레드에서 공유 정수 카운터를 증가시키기위한 최적의 접근법입니다.`lock`,`Interlocked` 또는 'volatile'?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!