나는 자바로 멀티 스레드 게임을하고있다. 모듈 스레드를 중앙 스레드 관리자에서 가져와 여러 스레드에서 독립적으로 실행하는 여러 개의 작업 스레드가 있습니다. 일시적으로 아무 것도 실행하지 않으면 이러한 스레드를 일시 중지 할 수있게하고 싶습니다. 스레드 관리자에서 wait() 메서드를 호출 해 보았습니다 만,이 메서드는 그 뒤에 오는 notify() 호출을 무시하는 결과를 낳았습니다.요청시 Java 스레드를 어떻게 일시 중단합니까?
나는 그것도 조금 봤다. 단지 대부분의 사이트가 suspend(), pause() 등과 같은 함수를 참조한다는 것을 알게되었다. 이제는 java 문서 페이지에서 더 이상 사용되지 않는 것으로 표시되어있다.
일반적으로 요청에 따라 스레드를 일시 중지하거나 계속하는 방법은 무엇입니까?
좋은 점은 있지만, 모든 모듈이 실행될 때까지 기다려야 할 때 게임의 주 스레드를 잠자기 상태로 만들거나 깨울 수 있습니다. 또한 각 모듈 (예 : 인공 지능, 애니메이션, 3D 렌더러, 스크립팅)은 어쨌든 완성에 대한 피드백을 보내야하므로 왜 즉시 새로운 작업을 시도하지 않습니까? 당신은 공정한 포인트가 있습니다. 아프다. 끝까지 생각해라 :)하지만 결국에는 그 경계선은 내가 실제로 찾고 있었던 것이었다. – Bartvbl
충분히 공정한 -하지만 나는 절대로 쓰레드를 전혀 사용하지 않아도 될 수 있다고 생각합니다. 네가 맞다. 기다리는 사람이 있으면 노동자가 다른 일을하지 말아야 할 이유가 없다. 나는 KarlP가 맞다고 생각한다 - ExecutorService를 사용하라. 자바가 이미 훌륭한 동시성 라이브러리를 가지고있을 때 바퀴를 재발 명할 필요가 없다. – Russell
그 중 일부는 또한 이러한 것들에 대해 배우고 싶습니다. 프로그래밍이 현명하기 때문에 더 쉬울 수도 있지만, "전에 사용 해왔다"는 것입니다. 그리고 확실하게, 나는 한 지점에서 일을 할 수없고 더 많이 사용할 수있을 때 그들을 다시 만들 수 없다면 실이 완전히 죽게 할 수 있습니다. – Bartvbl