Press "Enter" to skip to content

Buffering and Iterating over Channels — Go Lang Practical Programming Tutorial p.23


что происходит на всем добро пожаловать
часть 23 языкового программирования
сериал в этом видео мы
собираемся построить последнее видео
где мы говорили о том, чтобы пойти
каналов, поэтому в предыдущем уроке мы
просто показал простой пример
в основном отправки и получения значений
по этим каналам, но мы вроде как
удивлялся вид запуска в несколько
вещи, и мы задаемся вопросом о нескольких
вещи, прежде всего, в первую очередь
мы по крайней мере заметили, что мы не
по-видимому, синхронизировать эти
каналов, кажется, что они
как — то был в состоянии работать и наша программа
не заканчивались до тех пор, пока значения не были
но мы также заметили, что это
мало прискорбно, потому что в простой
пример игрушки, который вы могли бы просто написать
из всех каналов, которые вы собираетесь
но много раз вы можете не знать
сколько каналов у вас может быть
скажем так, вы только что
у вас будет большое количество, может быть, несколько
сто, может быть, несколько тысяч, кто знает
вы не хотите писать все
эти ценности вместо этого вы хотели бы быть
способный перебирать их, вот что
мы будем освещать здесь разговор
обо всех этих вещах в первую очередь
первое , что мы хотим просто прикрыть
прямо из ворота по умолчанию в
отправка и прием каналов
блокируется, когда мы делаем в основном здесь
это должно произойти, прежде чем мы сможем попытаться
для печати и прежде, чем вы
функция закончена, поэтому мы не
обязательно должны использовать
синхронизация, но, как мы увидим
довольно быстро здесь нам нужно будет
так что давайте покажем, как больше
реалистичный пример, скорее, чем
делая это таким образом, скажем, вместо этого
мы собираемся сказать, что для меня двоеточие равно 0, если
Я могу ввести его, пока я меньше 10 I
просто не могу вам сказать , а потом мы
прирост, я давай идти вперед и делать foo
над foo Val и я, так что это будет 10 из
они уверены , что мы могли бы трудно закодировать 10
приемы данных , но , что мм , что
будет проблематичным и начнет
ухудшаться со сто или
тысяч или 10000 и так далее
сейчас мы будем делать десять, хотя мы
могут запускать их сейчас, когда у нас есть такие способы
мы получаем их без необходимости
жестко закодировать каждое значение хорошо в
хотя бы одна волшебная вещь о движении является
оператор диапазона может просто
казалось бы, разбросаны по всем вещам
так что мы можем сделать, мы можем сказать, что
пункт :
равно диапазону foo гласных, чтобы мы могли
на самом деле просто пробегают по этому foo val
чат-канал, поэтому многие значения
Удивительно, что мы можем сделать распечатку формата
позиция хорошо давайте идти вперед и работать
это и посмотреть, как мы это делаем
так что иди, беги, подойди, у нас все в порядке, так что
все, по крайней мере, в первый раз
у нас есть проблема всего
процедуры в порядке, поэтому прежде всего мы
нам нужно преобразовать это, чтобы быть
обычная процедура, поэтому давайте исправим это
давайте продолжим и сохраним этот повтор, который
это не ошибка, которую я ожидал
прикольно теперь у нас есть то , что я надеялся
так что вы можете видеть, что мы запустили его с ними
выходить за рутины, и на самом деле мы получили
все ценности, которые мы хотели, если вы посмотрите на
Я имею в виду, что мы определенно побежали туда, где я был
равный девяти прав, потому что мы получили 45
но тогда мы получаем эту ошибку здесь все идет
подпрограммы — это спящий тупик, так что
здесь хорошо выглядит
в основном мы видим, что в основном
как диапазон знает, что хочет итерации
над foo Val, но на самом деле никогда не было
время, когда мы знаем, что foo val — это вы
знайте, что сделали правильно, так что мы можем
по крайней мере, закончить канал, чтобы
инициировать закрытие таким образом , мы можем закрыть
bubele, чтобы мы могли это сделать, а затем мы
может запустить это, а затем мы ничего не видим
вообще происходит здесь
так что происходит там, чтобы вы могли быть
думаю, что я видел это прежде всего
нам нужно выполнить синхронизацию, потому что
в основном, что происходит, все идет
вы знаете, что вы работаете, но
то мы заканчиваем программу раньше
они возвращаются
правильно, вы правы, что нам нужно
синхронизировать вещи, но вы ошибаетесь
о том, почему так, чтобы проиллюстрировать это, что я буду
я просто импортирую время, и я знаю
вы предпочли бы, чтобы я делал это в передних морях, но
это просто быстрее, я просто хочу
показать пример реальной быстрой точки времени
рукав точка точка второй раз два
хорошо, поэтому добавим спать, где это
будет подтверждать или отрицать,
не проблема в процедурах go
поэтому мы просто продолжим и запустим
это реальный быстрый
и теперь мы фактически получаем ошибку и
ошибка в том, что мы в панике, мы
пытаясь отправить на закрытый канал, чтобы
что происходит здесь , мы закрываем
канал, и мы фактически закрываем
канал, не доходящий до конца
мы закрываем канал раньше
мы можем отправить все так, как будто
прежде чем они будут выполнены даже после
каналы были закрыты, а бум мы
пытаясь отправить эти значения, но мы закрываем
канал вправо так , да мы должны
убедитесь, что мы синхронизированы, но на этот раз
это по несколько иной причине
поэтому мы сделали это раньше, чем первый
что мы собираемся идти вперед и делать
Я думаю, мы могли бы
сделали круглые скобки, потому что мы делаем
нужен второй импорт сейчас, и это
собираемся синхронизировать формат синхронизации, и мы знаем
мы сделали все это раньше, так что давайте пойдем
впереди, и наша группа ожидания и ожидание
группа будет точкой синхронизации типа
подождать группу, другие вещи давайте посмотрим
все, что нам нужно сделать сначала
из всех, когда мы собираемся использовать
ждать группу в самой фактической функции
в рутине мы должны отложить ожидание
группа сделано , мы должны убедиться , что
работает
отправить по каналу , что все хорошо
и dandy каждая итерация, когда мы делаем
как вызывать рутину для запуска, нам нужно
подождать группу dot добавить один каждый
времени, а затем то, что мы хотим сделать, это
прежде чем мы закроем канал, нам нужно
подождите, подождите, подождите, подождите, и мы подождем
все это в основном заканчивается, тогда мы
закройте канал, после чего мы можем выполнить итерацию
над всем, поэтому позвольте мне закрыть это
позволяет, а затем другое, что мне хотелось бы
нам нужно сделать, как сейчас, мы
блокирование, поэтому давайте просто сохраним это реальное
быстро, а затем повторите это, чтобы мы закончили
с этим просто чудовищем ошибки
um, и теперь мы хотим использовать
вместо этого буферизуем, позвольте мне просто добавить
как буфер здесь, так что foo vowel мы знаем
у нас есть десять предметов, так что мы не могли бы сделать
добавить буфер — это просто запятая, а затем
независимо от того, что находится в буфере, и они находятся в
это не байт, так что десять
в основном мы хотим буферизировать на десять
потому что в основном мы не хотим
в первую очередь, мы не хотим, чтобы наши каналы
как обычно, каналы блокируются
отправлять и получать, и это здорово, если
вам нужно его синхронизировать, если вы
необходимо синхронизировать их
причина в нашем случае, хотя нам не нужна
что у нас есть своя форма
синхронизация, и это только собирается
вызывают эти проблемы, поэтому мы собираемся
использовать буферизацию теперь они не будут
блокировка, а затем запустить
достаточно, наконец, все работает, и мы
есть наше возвращение сюда так интересно
достаточно того, что почти пошло в полном порядке
есть пара, это было похоже на
одна вещь, которая получила, была все равно
там все идет лучше, так что
эта точка мы можем видеть , что у нас есть мы
теперь знаю, как использовать процедуры go, как
синхронизировать процедуры go, а затем также
как отправлять и получать значения за
каналы с нашими процедурами go, поэтому при этом
Мы действительно готовы применить
все это нашему агрегатору новостей
веб — приложение , которое в данный момент занимает около
пять секунд для загрузки и наша надежда
заключается в том, что мы можем надеяться, что это будет
гораздо меньшее число, поэтому в следующем
обучающая , что мы собираемся делать это
фактически применяя все это к нашему
уже существующее веб- приложение, как мы это делаем и
да, если у вас есть вопросы, комментарии
беспокоит то, что до этого момента чувствую
бесплатно для ссылки ниже в противном случае я увижу
вы в следующем учебнике
Please follow and like us:

Be First to Comment

Добавить комментарий