삽질의 현장/- Go

Practical Go - Concurrency

shovelman 2020. 12. 20. 22:05

Go는 채널과 동시성, select 및 go 문에 대한 최고 수준의 지원을 제공한다.

동시성 기능을 사용하며 빠질 수 있는 함정들을 정리해보자.

Keep yourself busy or do the work yourself

Leave concurrency to the caller

함수가 고루틴을 시작하는 경우 호출자에게 해당 고루틴을 명시적으로 중지하는 방법을 제공해야 한다. 해당 함수의 호출자에게 함수를 비동기적으로 실행하도록 결정하는 것이 종종 더 쉽다.

Never start a goroutine without knowning when it will stop

고루틴의 생성자에게 발생하는 오류를 다시 전달하여 중지된 이유를 알 수 있도록 하고 프로세스를 깨끗하게 종료하도록 해야한다.

 

출처 : Practical Go: Real world advice for writing maintainable Go programs

'삽질의 현장 > - Go' 카테고리의 다른 글

Practical Go - Error handling  (0) 2020.12.20
Practical Go - API Design  (0) 2020.12.20
Practical Go - Project Structure  (0) 2020.12.20
Practical Go - Package Design  (0) 2020.12.20
Practical Go - Comment  (0) 2020.12.20