php 편집기 Xinyi는 "동시성 문제"라는 간단하지만 흥미로운 Go 시뮬레이션 게임을 제공합니다. 이 게임은 동시 프로그래밍을 테마로 하여 플레이어가 가상 세계에서 동시 프로그래밍의 매력을 경험할 수 있도록 해줍니다. 게임에서 플레이어는 여러 작업의 동시 실행을 처리하고 동시 프로그래밍 능력을 테스트하기 위한 코드를 작성해야 합니다. 게임 인터페이스는 간결하고 명확하며 조작이 간단하고 초보자가 시작하기에 적합하며 플레이어가 선택할 수 있는 다양한 난이도와 도전 모드도 제공합니다. 초보자든 숙련된 개발자든 이 시뮬레이션 게임에서 동시 프로그래밍의 즐거움을 누릴 수 있습니다.
저는 폴란드에서 온 학생이고 이번 학기에 동시 프로그래밍 과정(Go, Ada 및 향후 일부 이론 및 CSP 언어)을 시작했습니다. 솔직히 말해서 Golang은 흥미로워 보이지만 약간 혼란스럽습니다. 가장 중요한 것은 제 경험상 저는 제 자신을 평균 이하의 프로그래머라고 부를 것입니다. 기본적으로 제 임무는 시뮬레이션을 만드는 것인데, 이에 대해 다음과 같이 설명하겠습니다.
n*m 그리드가 있습니다
여행자는 무작위로 생성될 수 있습니다. 최대 k명의 여행자, 각 여행자는 고유한 ID를 갖습니다(1, 2, 3 등, 최대 k명)
무작위의 순간에 공간이 비어 있으면(확실히 여유 공간은 0일 것입니다) 여행자는 그리드에서 위, 왼쪽, 오른쪽 또는 아래로 이동할 수 있습니다
메쉬의 현재 상태와 최근 움직임을 인쇄하는 카메라도 있습니다(아직 구현되지 않음)
비공식적으로는 무슨 뜻이든 채널을 사용해야 한다고 들었습니다
내 생각은 각 여행자의 ID와 좌표로 구조를 만들고 이동 의지를 나타내는 채널에 그들의 ID를 보낸 다음 이동 방향을 무작위로 선택하는 것입니다.
저는 동시성에 대해 약간 혼란스럽습니다. wgs와 뮤텍스를 사용해야 하는지, 어디에 사용해야 하는지 뿐만 아니라, 예를 들어 func(){}를 사용하는 경우 루프가 내부에 있어야 하는지 외부에 있어야 하는지도 알 수 있습니다. 내 코드를 수정하기 위한 팁, 도움말 또는 수정 사항/아이디어를 주시면 매우 기쁘게 생각합니다. 추측한 대로 코드가 제대로 작동하지 않기 때문입니다(예: 카메라가 그리드를 인쇄할 때 때로는 k명 이상의 여행자가 있는 경우도 있습니다. 여행자들은 같은 번호를 공유하고 때로는 사라지는 것 같습니다). 모두들 즐거운 하루 보내시기를 바라며 도움을 주시면 정말 감사하겠습니다 :)
으아악WGS, 뮤텍스, 원자 등 모든 아이디어에 약간 압도당했습니다.
그 말은:
위 내용은 간단한 Go 시뮬레이션 - 동시성 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!