2 차원 셀룰러 오토마타가 있습니다. 일부 세포에는 배우 (대리인)가있을 수 있습니다. 각 액터는 스레드입니다. 배우 세포 주위의 9 개의 세포를 기반으로 배우를 움직여야합니다. 이 작업을 동시에 수행하여 셀 (4,5)의 액터가 이웃 셀 (3,4), (4,4), (5,4), (3,5), (5,5) , (3,6), (4,6), (5,6) 등 다른 배우가이 셀을 사용할 수 없습니다. 어떤 배우가 이웃에이 세포를 가지고 있다면, 그는 첫 번째 배우가 움직일 때까지 기다려야합니다. 그러나 공통의 이웃이없는 배우를 동시에 움직일 수있게하고 싶습니다. 그래서 (4,5)의 배우는 공통의 이웃이 없기 때문에 (10,5)의 배우와 동시에 이동할 수 있습니다.Concurrent Cellular Automata 액터 이동
무엇이 최선의 해결책입니까? 뭔가 제안 할 수 있니?
몇 가지 질문 : 새로운 셀에 1. 스레드 이동, 그것은 고정 된 시간 동안이 잠을 표시하거나하지 (의 1 초를 가정 해 봅시다)? 2. UI 시각화 (스윙)가 필요합니까? 이 경우 '이동 대기 중'스레드를 빨간색으로 표시하고 이동/슬립 스레드를 녹색으로 표시 할 수 있습니다. 구현 옵션으로 셀 행렬 [Cell [] [] matrix'을 만들 수 있습니다. Thread가 다음 셀로 갈 때마다이 셀의 모니터를 소유합니다 :'synchronized (matrix [i] [j]) {Thread.sleep (1000); }' –