Go Scheduler가 GMP 모델에서 새로운 M과 P를 생성할 때
In Go의 GMP(Goroutine, Machine, Processor) 모델인 스케줄러 특정 조건에 따라 M(머신)과 P(프로세서) 생성을 관리합니다.
M Creation
M은 다음과 같은 특정 이벤트에 응답하여 생성됩니다.
P 생성
P는 프로그램 시작 시 GOMAXPROCS 환경 변수를 기반으로 생성됩니다. 사용 가능한 최대 P 수입니다. 기본값은 시스템의 논리적 CPU 수입니다.
예제 분석
예제 코드에는 두 개의 고루틴 배치가 있습니다. 데이터베이스 작업을 실행 중입니다. 각 고루틴은 차단 I/O 작업을 수행합니다.
따라서 귀하의 경우 스케줄러는 두 번째 고루틴 배치에 대해 8M 이상을 생성합니다. 작업이 차단되고 있습니다. P는 GOMAXPROCS 값을 기준으로 1로 제한되지만 M은 필요에 따라 동적으로 생성됩니다.
추가 리소스
자세한 이해는 다음을 참조하세요. 리소스:
위 내용은 고루틴이 차단 작업을 수행할 때 Go Scheduler는 어떻게 새로운 M과 P를 생성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!