2013-04-01 4 views
-1

그리드에서 재생되는 셀 (픽셀 그룹으로 정의 됨)이있는 확률적인 셀룰러 오토 마톤을 쓰고 있습니다. 그리드가 주 프로그램에 있고, Cell 객체에 대한 클래스와 셀 동작의 확률 적 계산을 위해 Thread를 상속 한 클래스가 있습니다. 내 문제는 두 개의 셀이 접촉했을 때 동시에 그리드의 동일한 픽셀을 무작위로 획득 할 수 있거나 다른 셀이 아직 모르는 상태에서 획득 할 수 있다는 것입니다. 그래서 어떤 픽셀은 셀에 기인하지 않지만 셀은 여전히 ​​셀프라고 인식하는 버그가 발생합니다.셀룰러 오토 마톤에서 같은 픽셀을 놓고 경쟁하는 스레드를 피하는 방법

내 질문은 : 스레드가 동일한 공통 구성 요소를 동시에 수정하지 않도록 동기화하는 (또는 "우선 순위를 매기다") 방법은 무엇입니까?

감사합니다.

+0

동기화 된 블록을 들었습니까? 그걸 써. – Ankit

+2

감사합니다. 나는 실제로 프로그래밍을 스스로 학습하고 있으며 그것을 알지 못했다. – Myoch

+0

http://docs.oracle.com/javase/tutorial/essential/concurrency/sync.html에서 읽으십시오. –

답변

0

Java 키워드 synchronized을 사용하거나 Java Synchronizer Framework의 Mutex 또는 ReentrantLock과 같은 새로운 데이터 구조를 사용하십시오.

하지만 그 전에는 스레드 프로그래밍에 대한 소개 글을 읽는 것이 좋습니다 ...

관련 문제