Go.Основы.Многопоточность

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)
}

Report Page