Last updated
Last updated
Go-рутины — это легковесный управляемый поток. Go-рутины запускаются в одинаковых адресных пространствах, так что доступ к общей памяти должен быть синхронизирован. Пакет sync
предоставляет примитивы, однако в Go и есть другие подходы.
Например:
Если вызвать такую программу, выведется в консоль только Hello from main, так как main-функция не дождалась выполнения go-рутины. Тут нам понадобятся каналы:
Для блокирования каких-то объектов для горутин (для синхронизации).
Как правильно организовать (паттерны) многопоточное приложение: Go Concurrency Pattern: Advanced Go Concurrency Patterns: