DevOps/GoLang 2

[Golang] Channel

- 본 글은 2023.09.03 에 작성된 포스트입니다 Channel Channel 은 데이터를 주고 받을 수 있습니다. 주로 Goroutine 에서 스레드간 통신을 위한 매개체로 사용되기도 합니다. Go 에서 채널을 사용한다면 다음과 같은 키워드로 생성, 삭제, 읽기, 쓰기 작업을 수행할 수 있습니다. make(chan {type}, {int}) : 채널을 생성 type : 채널에서 다룰 데이터 형식 int: 버퍼의 개수, default 는 0이며, 버퍼의 개수만큼 지연없이 입력을 할 수 있습니다. 버퍼가 가득차면, 버퍼에서 출력할때까지 입력을 대기합니다.

DevOps/GoLang 2023.09.03

[Golang] Goroutine (고루틴)

- 본 글은 2023.09.03 에 포스트된 글입니다. 개요 프로그램 사용에 따라서 두 개 이상의 쓰레드를 사용 해야 하는 경우도 있습니다. Golang 에서는 고루틴을 통해서 다른 곳에서 쓰이는 쓰레드처럼 멀티작업을 수행할 수 있습니다. Goroutine 고루틴은 Go 런타임에 의해 관리되는 경량 쓰레드 입니다. 고루틴은 KB 범위의 메모리만 소비하기에 경량 쓰레드라는 말이 어울리는 것 같습니다. 하지만 고루틴은 실제 OS 쓰레드와는 다르며, OS 쓰레드에 대한 추상 계층이라고 가정할 수도 있습니다. 고루틴은 로컬 저장소가 없기 때문에 부팅 시간이 OS 쓰레드보다 빠릅니다. 간단하게 go 키워드를 붙혀서 고루틴으로 함수를 실행할 수 있는데, 다음은 say 함수를 Goroutine 으로 실행하는 방법을 ..

DevOps/GoLang 2023.09.03
반응형