Go.Основы.Многопоточность
https://t.me/HotCheatSheetГорутины
import "fmt" func main() { for i := 0; i < 10; i++ { go f(i) } var input string fmt.Scanln(&input) // ожидание ввода }
Каналы
переменная
:= make(chan
тип_канала
)
Пример:
import "fmt" func main() { messages := make(chan string) go func() { messages <- "ping" }() msg := <-messages fmt.Println(msg) }
Буферизированный канал
переменная := make(chan тип_канала, ёмкость_канала)
import "fmt" func main() { messages := make(chan string, 2) messages <- "buffered" messages <- "channel" fmt.Println(<-messages) fmt.Println(<-messages) }