inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정

고루틴 동기화 기초

51분쯤에서 질문이 있습니다.

157

IJILKJ

작성한 질문수 68

0

51분쯤에 나오는 for문에서 i=0일 때 Lock을 걸고 채널에 777을 넣고 "goroutine waiting"구문이 프린트된 후에 

condition.Wait으로 멈추잖아요?

그리고 i=1로 넘어가는데 그럼 현재 Lock이 걸려있으니까 

i=1부터는 c<-777 코드부터 실행이 안되야하지않나요??

어떻게 실행되는건가요?

그리고 54분쯔음에 condition이 인자로 Mutex를 받아서 깨울때도 Mutex.Lock을 해줘야한다고 나와있는데 조금 더 자세히 설명해주실 수 있나요? 이 부분은 이해가 안가서요.

go

답변 1

0

좋은사람

안녕하세요.

Lock 이후에 제어권이 다른 goroutine 에 의해서 실행 됩니다.

변수 동기화만 처리되는 것입니다.

또 모든 고루틴을 wake 할 때는 signal, broadcast 등을 이용합니다.

관련 URL을 첨부해드립니다.

https://golang.org/pkg/sync/#Cond.Signal

고 인터페이스 관련

0

75

2

Join함수 사용이유가 궁금합니다

0

60

1

vscode 설정

0

138

2

arm64

0

212

2

undefined 에러 : UndeclaredImportedName

0

352

1

godoc 에러 관련

0

210

1

package is not in std 오류

0

999

1

맵 예제 코드가 바이러스 검사에 걸려요

0

240

1

for 반복문에서 break와 continue 차이점

0

229

1

후치연산 관련 질문입니다.

0

201

1

package관리에 질문이 있습니다.

0

286

1

go channel 에제에서 질문이 있습니다.

0

202

1

golang 질문

0

316

1

재귀 함수 관련하여 질문이 있습니다.

0

351

1

atom 서비스 종료 관련

0

409

1

vscode 환경설정 업데이트 부탁드립니다

1

416

2

waitGroup.Done을 지연 시키는 방식

0

455

1

첫 번째 예제 질문있습니다.

0

269

1

2개씩 체크가 되는 이유가 궁금합니다.

0

338

1

go 표준 코드 컨벤션이 있나요?

0

831

1

slice에서 make 궁금한 게 있습니다.

1

267

1

import 관리는 어떻게 하나요?

0

324

1

개발환경설정 질문드립니다.

0

493

1

이것도 closure인가요?

0

245

1