예제에서 크기가 2인 messages 채널을 만들었다. 이 message 채널은 버퍼링이 되기 때문에, 두 개의 메시지를 보낼 수 있다.
버퍼링채널은 master & worker모델의 프로그램에서 널리 사용한다. 이미지에 대한 섬네일을 만드는 프로그램이 있다고 가정해 보자. main 고루틴은 섬네일 변환 요청을 받아서, worker 고루틴에 요청을 전달한다. 요청을 받은 worker는 이미지에 대한 섬네일을 만든다. 요청을 받아서 전달하는 작업은 매우 빠르게 이루어지지만 요청을 처리하는 일은 상대적으로 느리게 작동한다. 따라서 하나의 채널만 가지고 있다면, main 고루틴은 worker 고루틴이 작업을 끝 낼때까지 요청을 받지 못하게 될 것이다.
버퍼링 채널을 이용하면, 유저 요청을 기다리지 않고 받을 수 있다.
다음 예제 : Channel Synchronization
예제로 살펴보는 Go : Channel Buffering
Recent Posts
Archive Posts
Tags