고루틴 풀링
이 글은 제 레포를 기반으로 작성되었습니다.
왜?
오픈톡방에서 고루틴에 대한 이야기가 나왔었습니다. 고루틴을 안전하게 관리하기 위한 보일러플레이트에 대한 것과 join과 반환값의 처리에 대한 것이었습니다.
그래서 한번 해당 건에 대해 나름의 해답을 라이브러리로 만들어봤습니다.
gopool
GoPool
type GoPool struct {
pool sync.Pool
max int64
count int64
running int64
sync.Mutex
}
고풀 구조체는 고루틴을 풀링할 sync.Pool
, 그리고 int64
타입의 max
, count
, running
을 가집니다.
max
는 최대 고루틴 수, count
는 현재 생성된 고루틴 수, running
은 현재 실행되고 있는 고루틴 수를 의미합니다.