• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

몇가지 질문이 있습니다

20.08.27 00:31 작성 조회수 154

0

다음 강의에서 다루는지는 잘 모르겠지만 지금 강의에서 궁금한게 몇가지 있습니다.

1. wait()를 사용한 시점부터 아래 코드들이 일시정지인 상태로 진행이 되는 것으로 이해가 되는데, 그렇다면 mutex.Unlock()을 읽지 못해서 에러를 발생해야 맞는게 아닌가요 ? 궁금해서 Wait() 코드를 보니깐 아래처럼 나오더라구요. 그러면 Wait()가 동작하고 Unlock()이 동작하고 WaitList 추가한다음 Lock()을 걸고 제가 작성한 코드로 돌아와서 for문의 Lock()을 다시 거는것처럼 보이는데 이러면 오류가 발생하지 않나요 ???

2. Wait()로 일시정지를 했다면 이 순서같은 경우는 그냥 랜덤으로 동작하게 되는건가요? Signal로 특정 고루틴을 깨우는것이 불가능 한건가요 ? 

답변 2

·

답변을 작성해보세요.

0

최동혁님의 프로필

최동혁

질문자

2020.08.27

답변감사합니다!

0

1. 오류가 발생하지 않습니다.

    초반부의 뮤텍스 부분을 다시 정독해 보시면 됩니다.

2. 아래 예제를 시간 나실 때 읽어보시면 도움이 되실 겁니다.(번역도 가능)

https://medium.com/@matryer/golang-advent-calendar-day-two-starting-and-stopping-things-with-a-signal-channel-f5048161018