Deadlock
Deadlock은 두 개 이상의 코루틴이 실행되는 과정을 말합니다. 그 과정에서, 자원 경쟁이나 서로 소통에 따른 차단 현상이 발생하면 외부의 힘이 없으면 앞으로 나아갈 수 없게 된다. (추천 학습: go)
Common deadlock
시나리오 1: One The 채널 go 프로세스에서 읽고 기록됩니다
func main() { c:=make(chan int) c<-88 <-c }
시나리오 2: go 프로세스가 열리기 전에 채널 사용
func main() { c:=make(chan int) c<-88 go func() { <-c }() }
시나리오 3: 채널 1이 채널 2를 호출하고, 채널 2가 채널 1을 호출합니다
func main() { c1,c2:=make(chan int),make(chan int) go func() { for { select{ case <-c1: c2<-10 } } }() for { select{ case <-c2: c1<-10 } } }
교착 상태가 발생하는 상황은 많지만 모두 리소스와 데이터를 위한 경쟁입니다. 의사소통 원인.
교착상태에 대한 해결책은 잠금을 추가하는 것입니다.
위 내용은 golang에서 교착상태를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!