비동기/대기: 실행 후 잊어버리기 vs. 완료 대기
호출자 함수와 호출된 비동기 함수 간의 상호 작용을 이해하는 것은 효율적이고 올바른 코드를 위해 매우 중요합니다. 다양한 접근 방식을 살펴보겠습니다.
시나리오 1: 실행 후 잊어버리기(간단): 호출된 함수(Callee)가 시작되었지만 호출자(Caller)는 완료를 무시합니다. 발신자는 즉시 진행합니다.
시나리오 2: 완료 대기: 호출자는 실행을 계속하기 전에 호출 수신자가 완료될 때까지 명시적으로 기다립니다.
이제 스레드 풀의 복잡성을 소개하겠습니다.
시나리오 3: ThreadPool 스레드에서 실행 후 삭제: 호출 수신자는 스레드 풀 스레드에서 실행되지만 호출자는 완료 상태를 무시합니다.
시나리오 4: ThreadPool 스레드에서 완료 대기: 스레드 풀 스레드에서 비동기적으로 실행 중이더라도 호출자는 호출 수신자가 완료될 때까지 참을성 있게 기다립니다.
마지막으로 async
키워드
시나리오 5: ThreadPool 스레드에서 Async를 사용하여 실행 및 삭제: 시나리오 3과 유사하지만 호출 수신자가 async
선언되었지만 완료가 여전히 무시됩니다.
시나리오 6: ThreadPool 스레드에서 비동기로 완료 대기: 호출자는 await
을 활용하여 호출 수신자가 스레드 풀 스레드에서 실행되는 경우에도 진행하기 전에 호출 수신자의 완료를 확인합니다. 이것이 가장 강력한 접근 방식입니다.
위 내용은 실행 후 잊어버리기 vs. Async/Await에서 대기: 비동기 작업이 완료될 때까지 언제 기다려야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!