From c16c1429183414810fc03339f296ea1fa87bc5a8 Mon Sep 17 00:00:00 2001 From: badkaktus Date: Tue, 8 Oct 2019 11:02:00 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B7=D0=B0=D0=BA=D1=80=D1=8B=D1=82=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BA=D0=B0=D0=BD=D0=B0=D0=BB=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples.txt | 2 +- examples/closing-channels/closing-channels.go | 38 +++++++++---------- examples/closing-channels/closing-channels.sh | 4 +- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/examples.txt b/examples.txt index b78b0d8..c261086 100644 --- a/examples.txt +++ b/examples.txt @@ -27,7 +27,7 @@ Switch Select Тайм-ауты (Timeouts) Неблокируемые операции в каналах (Non-Blocking Channel Operations) -Closing Channels +Закрытие каналов (Closing Channels) Range over Channels Timers Tickers diff --git a/examples/closing-channels/closing-channels.go b/examples/closing-channels/closing-channels.go index 926d9b5..45500b6 100644 --- a/examples/closing-channels/closing-channels.go +++ b/examples/closing-channels/closing-channels.go @@ -1,26 +1,26 @@ -// _Closing_ a channel indicates that no more values -// will be sent on it. This can be useful to communicate -// completion to the channel's receivers. +// _Закрытие_ канала означает, что по нему больше не +// будет отправлено никаких значений. Это может быть +// полезно для сообщения получателям о завершении. package main import "fmt" -// In this example we'll use a `jobs` channel to -// communicate work to be done from the `main()` goroutine -// to a worker goroutine. When we have no more jobs for -// the worker we'll `close` the `jobs` channel. +// В этом примере мы будем использовать канал `jobs` для +// передачи задания, которое должна быть выполнена из +// `main()` в горутине. Когда у нас больше не будет +// заданий для воркера, мы `закроем` канал `jobs`. func main() { jobs := make(chan int, 5) done := make(chan bool) - // Here's the worker goroutine. It repeatedly receives - // from `jobs` with `j, more := <-jobs`. In this - // special 2-value form of receive, the `more` value - // will be `false` if `jobs` has been `close`d and all - // values in the channel have already been received. - // We use this to notify on `done` when we've worked - // all our jobs. + // Вот наш воркер. Он многократно получает из канала + // `jobs` значения `j, more := <-jobs`. В этой специальной + // форме получения с двумя значениями `more` значение + // будет `ложным`, если `jobs` были `закрыты`, а все + // значения в канале уже получены. Мы используем + // это, чтобы уведомить о `выполнении`, когда мы + // проработали все наши работы. go func() { for { j, more := <-jobs @@ -34,8 +34,8 @@ func main() { } }() - // This sends 3 jobs to the worker over the `jobs` - // channel, then closes it. + // Отправляем 3 сообщения в канал `jobs`, и закрываем + // его. for j := 1; j <= 3; j++ { jobs <- j fmt.Println("sent job", j) @@ -43,8 +43,8 @@ func main() { close(jobs) fmt.Println("sent all jobs") - // We await the worker using the - // [synchronization](channel-synchronization) approach - // we saw earlier. + // Мы ожидаем выполнения всех каналов используя + // [синхронизацию](channel-synchronization), рассмотренную + // нами ранее. <-done } diff --git a/examples/closing-channels/closing-channels.sh b/examples/closing-channels/closing-channels.sh index 013f8a8..545be78 100644 --- a/examples/closing-channels/closing-channels.sh +++ b/examples/closing-channels/closing-channels.sh @@ -8,5 +8,5 @@ received job 3 sent all jobs received all jobs -# The idea of closed channels leads naturally to our next -# example: `range` over channels. +# Идея закрытых каналов естественно приводит нас к +# следующему примеру: `range` по каналам.