GO를 처음 접하는데 채널 신호를 사용하여 고루틴을 중지하는 방법에 대해 질문이 있습니다.
저는 오랫동안 실행되는 고루틴(1000개 이상)과 이를 관리할 관리자가 있습니다:
으아악이런 경우에는 전화할 때마다 c <- true
管理器都会等待 callClientTask()
完成,然后转到下一个 cancelChannel
나는 모든 고루틴이 callClientTask()
(30초 이하)
내가 시도한 유일한 방법은 다음과 같이 새로운 고루틴을 캐스팅하는 것이었습니다:
으아악내가 이 일을 제대로 하고 있는 걸까요?
귀하의 질문에서 제가 이해한 한, "callClientTask()의 1회 반복(30초 이하) 내에 모든 고루틴을 중지하고 동기화 질문 없이 작업자 스레드를 동시에 실행하기를 원합니다."
대기그룹과 동시에 실행되도록 코드를 재구성했습니다.
샘플 코드:
으아악출력:
으아악편집자:
일부 작업자를 중지하려면 작업자를 업데이트해야 합니다. 다음 코드에는 "중지" 및 "중지" 채널과 시작/중지 기능이 있는 작업자가 포함되어 있습니다.
샘플 코드:
으아악출력:
으아악위 내용은 채널을 사용하여 고루틴을 더 빠르게 닫습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!