멀티 스레딩은 Conway의 Life Clone의 게임에 영향을 미칠 수 있습니까?

StackOverflow https://stackoverflow.com/questions/3301562

  •  26-09-2020
  •  | 
  •  

문제

나는이 작은 게임 아이디어를 구현 해왔다. 이것은 (어쨌든?) conway의 삶의 게임과 유사하다 :

0) 컬러 도트 (RGB 값)의 매트릭스가 있습니다. 1) 인접한 셀이 Y보다 x 값이 낮은 경우 해당 셀에 Y= 0을 넣으십시오. (여기서 x와 y는 빨간색입니다 | 녹색 || 파란색) 2) 레드 비트 그린 비트 블루 비트 레드

내가하고있는 일은 셀별로 셀을 가고, 위의 규칙이 충족되는지 확인하는 것입니다.그러나, 첫 번째 행의 셀이 때로는 끝까지의 셀이 끊어진 것보다 유리한 이래로 내가 의도 한 것이 아닙니다.

멀티 스레딩이이를 방지 할 수 있습니다 (SAY, 두 개의 스레드를 시작하는 것, 첫 번째 셀에서 첫 번째 셀에서 시작하고 마지막 셀에서 다른 셀에서 시작)?동시성에 대한 내 무지를 용서 해주십시오. 그러나 나는 이것이 그것에 대해 일하기를 시작하는 좋은 방법이었습니다.

도움이 되었습니까?

해결책

내 추측은 매트릭스 inplace를 업데이트하는 것입니다. 이렇게하면 일부 셀을 업데이트하지 않고 다음 줄에서 값을 테스트하지 않습니다. 따라서 프로그래밍과 관련이없는 알고리즘 문제가 될 것입니다.

다른 팁

아니오.귀하의 문제는 고유 한 결함입니다.당신이 가진 문제는 중간 결과를 사용하고 있다는 것입니다. 즉, 한 셀의 변경은이 업데이트에서 즉시 다음 셀에 영향을줍니다.그것은해서는 안됩니다.새 행렬을 만들고 변경된 값을 저장 한 다음 새 값이로드되도록 스왑해야합니다.반복.

알고리즘을 적용하여이를 방지하기 위해 더 나아질 것입니다.

행동을 바꾸기 위해 멀티 스레딩에 의존하는 것은 좋은 일이 아닙니다.본질적으로, 코드에 경쟁 조건을 소개하려고합니다.일반적으로 알고리즘에 멀티 스레딩을 추가 할 때 첫 번째 우선 순위는 행동의 모든 변경 사항을 방지하는 것입니다.

경쟁 조건을 사용하여 행동을 변경하려고 시도하면이 매우 비 결정적이지만 좋은 방법이 아닙니다.당신은 이것에 대한 다른 솔루션을 제시하고 (잠재적으로 의사 난수 생성기 등을 사용) 한 다음 멀티 스레딩을 소개하여 더 빨리 (결과에 영향을 미치지 않고)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top