Назад к вопросам
Касперский
Junior — Middle
73
Каким образом реализуется обмен сообщениями между отправителем и получателем данных в языке Go?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В языке Go обмен сообщениями между отправителем и получателем данных реализуется с помощью каналов (channels). Каналы позволяют горутинам (goroutines) безопасно обмениваться данными, синхронизируя их выполнение.
Канал создаётся с помощью функции make и может быть буферизированным или небуферизированным:
ch := make(chan int) // небуферизированный канал
chBuf := make(chan int, 5) // буферизированный канал с размером буфера 5
Отправка в канал:
ch <- 42 // отправить значение 42 в канал ch
Получение из канала:
value := <-ch // получить значение из канала ch
Пример обмена сообщениями между двумя горутинами:
package main
import (
"fmt"
"time"
)
func main() {
ch := make(chan string)
go func() {
ch <- "Привет от горутины"
}()
msg := <-ch
fmt.Println(msg)
}
Таким образом, каналы в Go обеспечивают безопасную и удобную коммуникацию между параллельными потоками выполнения.