18.3. 프로그램언어 고(Go)의 고루틴과 채널의 활용

프로그램언어 고(Go)에서의 채널의 여러가지 활용법 고(Go)언어의 채널에는 다음과 같은 여러 가지 활용법이 있습니다. package main import “fmt” func main() { // 버퍼가 없는 채널 ch := make(chan int) // 버퍼가 있는 채널 ch2 := make(chan string, 2) } 위의 예제코드와 같이 채널을 만들 때 버퍼의 유무에 따라 다음과 같이 활용할 수 있습니다. 1. 버퍼가 없는 … Read more

18.2. 프로그램언어 고(Go)의 고루틴 동기화

프로그램언어 고(Go)에서의 뮤텍스 Mutex 활용 고(Go)언어에서 뮤텍스(Mutex)는 고루틴(goroutine)간에 안전하게 데이터를 공유하기 위해 사용합니다. 뮤텍스는 lock과 unlock 메서드를 사용하여 크리티컬 섹션(critical section)을 보호합니다. 한 고루틴이 lock을 획득하면 다른 고루틴은 unlock이 호출될 때까지 기다려야 합니다. 예를 들어 여러 고루틴이 공유 자원에 접근할 때 뮤텍스를 사용할 수 있습니다. package main import ( “fmt” “sync” ) var count int … Read more