>  기사  >  백엔드 개발  >  타이머가 완료되면 함수에서 어떻게 복귀하나요?

타이머가 완료되면 함수에서 어떻게 복귀하나요?

WBOY
WBOY앞으로
2024-02-06 09:45:04781검색

当 go 中计时器完成时如何从函数返回?

질문 내용

저는 이제 막 장난감 테스트 CLI 프로그램 개발을 시작했습니다. 타이머가 끝나면 퀴즈가 끝나도록 타이머를 구현하려고 합니다.

이것은 나의 초기 구현입니다.

으아악

편집 및 구현

으아악

다음 출력과 오류가 계속 발생합니다.

으아악

저는 아직 무슨 일이 일어나고 있는지 이해할 만큼 채널과 고루틴을 잘 이해하지 못합니다. 예상되는 동작은 타이머가 중지되면 "퀴즈 종료됨"을 인쇄하고 select 문에서 읽은 퀴즈 완료 채널에 값을 보내는 것입니다. 또 다른 문제는 Scanln이 퀴즈가 끝난 후 사용자 입력을 기다린다는 것입니다. 어떤 도움이라도 대단히 감사하겠습니다!


정답


메인 고루틴에서 Scanln 함수를 호출하면 일시정지하고 사용자 입력을 기다립니다. 타이머가 다른 고루틴에서 완료되어 메인 고루틴에 알리려고 해도, 메인 고루틴은 "스캐너"에 의해 차단되었기 때문에 응답하지 않습니다.

그래서 타이머가 종료되더라도 Scanln는 여전히 사용자 입력을 기다리고 있습니다.

으아악

위 내용은 타이머가 완료되면 함수에서 어떻게 복귀하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제