, 나는 방법 코드를 가지고있다 : 나는 보통의 insted을위한 병렬를 사용하고 싶습니다지역의 휘발성 변수는 내 C# 프로그램에서
Object model;
int score;
for()
{
int tempScore=0;
Object tempModel=getModel();
//some interesting stuff modifying value of tempScore
if(tempScore>score)
{
score=tempScore;
model=tempModel;
}
}
,하지만 난 내가 어떤 동기화 문제가 발생할 것 같군요. 잠금 (모델)을 사용할 수 있다는 것을 알고 있지만 간단한 유형 점수에 대해서는 어떻게해야합니까? 모델 및 점수는 메소드 로컬 변수이므로 스레드간에 공유됩니다.
스 니펫이 명확하지 않습니다. 스레드 로컬 변수를 고려하십시오. 필수적인 방법은 다음 문서를 참조하십시오. http://msdn.microsoft.com/en-us/library/dd460703.aspx –
스레드간에 공유되는 변수를 알아야합니다. 우리는 '점수'가 공유된다고 생각할 수 있습니다. 지도/축소 알고리즘에서 스레드 로컬 스코어를 사용할 수 있습니다. 또는 연동 작업을 사용할 수도 있습니다. 또는 잠금. –