background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Изучаем Golang. Урок 9. Многопоточность. Горутины и каналы"

input logo icon
Теги видео
|

Теги видео

golang
голенг
урок по golang
development
howto
learnbasics
coding
programming
изучаемIT
программирование
разработка
golang tutorial for beginners
golang tutorial
learn golang
golang programming
урок
tutorial
изучаемit
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:02
продолжаю сегодня у нас большая тема
00:00:04
ногой рутины канал и будет интересно
00:00:08
поехали сам первом уроке я заострил
00:00:11
внимание на том что гонг вышел 2009 году
00:00:15
я говорю о том что это важно почему
00:00:17
потому что именно примерно в этот дрон
00:00:19
же так времени компьютеры стали мощными
00:00:21
увеличилось количество процессоров
00:00:23
увеличилась тактовая частота количество
00:00:26
ядер ну и так далее и примерно в это же
00:00:29
время в дом 2007 и 2009 года началась
00:00:35
реальная польза от многопоточных
00:00:39
приложений
00:00:40
потому что процесс процессоров стало
00:00:42
много я листала много не только в
00:00:45
серверном оборудование но и их
00:00:46
пользовательском оборудование и
00:00:51
многопоточность стало иметь смысл а язык
00:00:54
был создан вот не так давно и поэтому в
00:00:57
нем упрощена работа с многопоточности и
00:01:00
это многопоточность называется go рутину
00:01:04
на диск затруднит
00:01:07
гутен
00:01:08
русскому грудь и
00:01:11
другим а
00:01:15
вот
00:01:23
и что такое грудь и когда мы запускаем
00:01:28
мы когда мы пускаем и вот
00:01:34
мы на самом деле запускаем грудь и
00:01:38
запускается грудь и на основной поток
00:01:41
выполнение до точка входа это основной
00:01:44
поток упал и
00:01:47
мы можем создать
00:01:50
вырученной
00:01:52
из основного потока как это сделать мы
00:01:56
создаем метод какой-нибудь на любой
00:01:58
который просто складывает
00:02:02
этого просто выводит что-то на экран
00:02:04
пусть это будет
00:02:10
он просто принимает на вход
00:02:13
пока такой sol его этого на экран все
00:02:17
это будет минус 7-ми
00:02:19
наций
00:02:21
простая функция простой метод когда
00:02:24
выходит на игра мы его можем просто
00:02:26
вызвать
00:02:27
мы можем просто вызвать и здесь передать
00:02:30
она стала мы вызываем оно созывается
00:02:33
сначала наш фонд принтером его удалим и
00:02:37
потом вызов метода но чтобы вызвать эту
00:02:40
рутину ну причем голову
00:02:43
просто ключевое слово год перед вызовом
00:02:46
мена таким образом
00:02:49
black создаст легковесный поток которым
00:02:53
будет сам управлять
00:02:56
вот этот
00:02:59
метод вызванный через ключевой метод go
00:03:02
вызывается в отдельном потоке год
00:03:05
создаст отдельный поток и вызовет его
00:03:12
в отдельном потоке не блокируя основной
00:03:16
поток то есть здесь мы можем написать
00:03:20
какой-нибудь
00:03:24
пример
00:03:26
5 секунд
00:03:29
до чтобы метод спал 5 секунд потом вылил
00:03:33
слова а здесь мы можем
00:03:36
написать
00:03:40
посчитать давности
00:03:45
,
00:03:47
на одну стукнуть таким образом мы
00:03:50
вызываем это у нас мы бы считали до 5
00:03:54
быстрее чем секунда а почему сейчас не
00:03:57
вызвался сей почему сейчас не отработал
00:03:59
этот метод он уснул на секунду
00:04:03
вызвались вот эти print елены и основной
00:04:07
поток завершился он не дождался да он
00:04:11
завершился а когда основной поток
00:04:14
завершается завершают свои всех грудь
00:04:16
инны созданы в этом основном пока он не
00:04:19
дождался выполнение этой ветер чтобы он
00:04:23
дождался мы можем засыпать например для
00:04:26
тестов дано 2 секунды
00:04:30
к 2 секунды основной поток не послал бы
00:04:36
посчитали до 5 выигрывать халлоу и потом
00:04:40
программа завершилась то есть мы вызвали
00:04:43
эту рутину она уснула на секунду
00:04:46
посчитали до пяти и основной поток
00:04:50
заснул основной поток заснул нового типа
00:04:53
продолжает работать потому что она
00:04:54
работает в отдельном потоке в отдельном
00:04:58
потоке
00:04:59
значит грудь иные запускаются в том же
00:05:02
самом адресном пространстве
00:05:04
поэтому доступ к общей памяти должен
00:05:07
быть синхронизирован должен быть
00:05:10
синхронизирован об этом мы поговорим в
00:05:12
следующем уроке про примитива
00:05:15
синхронизации по примете выйти на улицу
00:05:17
и на самом деле это все что можно
00:05:20
сказать про мир утиный и запуск
00:05:23
отдельных потоках то есть у вас есть
00:05:25
метод вы можете его запустить в
00:05:27
отдельном потоке написав ключевых паука
00:05:29
и это будет работать асинхронно
00:05:33
этот метод выполнится асинхронно с
00:05:36
основным папку в другом потоке
00:05:39
на дуба так и
00:05:41
это все что можно сказать по грудь или
00:05:44
одну таком базовом уровне но у нас же
00:05:47
есть наверняка
00:05:48
ебаная спросите да и сразу возникает
00:05:50
вопрос а как как грудь и нам общаться
00:05:53
между собой как вообще передавать данные
00:05:56
из основного потока в грудь и иные из
00:05:59
грудь и на основные потоки и языка
00:06:02
отвечает на этот вопрос каналами в г
00:06:06
есть каналы и это такая трубочка между
00:06:10
чем чем угодно между чем году канал
00:06:15
создается ключевым словом чистку sensual
00:06:17
мейк бывшим переменную си эйч
00:06:21
почувствовала мейк пишем что это канал и
00:06:24
тип да
00:06:25
мы создали канал чтобы записать что-то в
00:06:29
канал чтобы записать что наш канал
00:06:31
давать ему здесь запишем в канал
00:06:36
единичку
00:06:38
дали
00:06:41
шанс мы запишем его и личку то есть вот
00:06:45
здесь мы пишем тянул до нас переменная с
00:06:48
каналом дальше стрелочка стрелочка
00:06:51
это направление данных то есть если
00:06:54
стрелочка вот канал поэтому пишем в
00:06:56
канал если стрелочка из канала как
00:06:59
например здесь
00:07:13
вот так
00:07:16
мы читаем из канал на стрелочка из
00:07:20
канала здесь а стрелочка вот канал а
00:07:23
здесь из канал здесь мы читаем осканова
00:07:26
а здесь не пишем в канал и
00:07:29
на самом деле сейчас мы можем посчитать
00:07:33
опять же до пяти или там сколько раз и у
00:07:36
нас сейчас все выполнится без слипов
00:07:38
почему потому что чтение с канала
00:07:42
площадь
00:07:45
запускаем
00:07:49
мы посчитали в единичке очень легко а мы
00:07:54
забыли
00:07:56
заказа с ним
00:07:58
с ним на секунду
00:08:01
ну и даже на 2 эту на две секунды
00:08:04
запускаем посчитали до единички и теперь
00:08:08
основной поток заснул в эти сейчас
00:08:10
сделаем 10 что белов 1 снять
00:08:14
посчитали единички и теперь главный
00:08:18
поток главное долга рутина спит она не
00:08:21
спит она ждет пока в канале появятся
00:08:24
данные так только в канале появляются
00:08:27
данные она их учитывает у нас принтеру
00:08:29
выводимых на экран и поток завершается
00:08:31
таким образом через канал мы можем
00:08:34
дождаться завершения
00:08:37
грудь и вот таким простым способом
00:08:41
просто создали канал с типом int мы
00:08:44
можем создать канал с типом string и
00:08:46
тогда
00:08:48
нам и яичку должно получиться мы
00:08:52
передаем строку и
00:08:55
запускаем посчитали единички crisping 10
00:08:59
секунд ну грудь у нас 50 секунд а
00:09:01
главный поток ждет данных из каналов он
00:09:04
дожидается данных из канал сейчас он
00:09:06
дождался и мы получили вывод хэллоу это
00:09:10
вот этот принтер и
00:09:12
им зид это вот этот контент если вы 400
00:09:14
nova и
00:09:17
вывели а
00:09:24
поскольку канал и отправка и получение
00:09:28
блокируют
00:09:31
блокирует поток до тех пор пока другая
00:09:34
страна не будет готова это позволяет
00:09:36
грудь и нам синхронизироваться без
00:09:38
дополнительных log off и состояния гонки
00:09:41
и состоянии гонки
00:09:45
позволяет с каналом а также можно
00:09:48
учитывать много всего последовательно
00:09:51
давайте попробуем это сделать
00:09:56
функция
00:10:06
средний цикл
00:10:09
от нуля
00:10:17
засыпает на условные 100 миллисекунд
00:10:22
мистику
00:10:24
после чего выводит
00:10:26
слова хэллоу
00:10:30
она вызывает метод цель придает куда
00:10:35
хлор и
00:10:41
к нам убираем канал мы переносим сюда
00:10:45
цикл не после чего этот канал и
00:10:52
после чего
00:11:02
теперь мы можем
00:11:05
вызвать сейфе лол
00:11:08
передать туда наш канал и
00:11:12
учти данную скоро
00:11:15
запускаем
00:11:17
дожидаемся
00:11:24
у
00:11:27
одного долго каждый раз секунды немного
00:11:31
сдать он запускаем канал канал канал и
00:11:34
получаем ошибку
00:11:38
получаем ошибку
00:11:43
при чем мы получаем что он гуру teens
00:11:46
асд-2
00:11:49
почему просто особенно ли мы используем
00:11:52
здесь просто вы получили с канала
00:12:03
запускаемся запускаем сцене пишем канал
00:12:13
пишем в exit
00:12:16
переменная s и
00:12:21
коллега для разнообразия потом
00:12:24
разберемся для разнообразия мы присвоим
00:12:26
значение из канала с и выведем его
00:12:30
отдельно
00:12:35
давайте разбираться почему у нас
00:12:38
произошла ошибка а
00:12:43
кого я потому что я запускаю это в том
00:12:46
же потоке да и одна прога руки ну забыл
00:12:48
да видите мы спускаемся и хэллоу без
00:12:52
никакую рутину не к груди и когда мы в
00:12:57
том же потоке
00:13:00
пишем в канал и начинаем читать из
00:13:03
канала у нас поток хочется а других
00:13:06
потоков нет нет потока которые смогут
00:13:09
этот канал что-то записать поток залочен
00:13:14
мы ждем поэтому у нас получится поток
00:13:18
если мы сейчас запустим всей хэллоу в
00:13:21
грудине у нас все
00:13:26
плохо с
00:13:29
почему потому что в том же то что мы
00:13:32
запускаем этого разных потоков
00:13:34
канавы нельзя использовать в одном и том
00:13:38
же под это писать и читать канал рукаве
00:13:40
хоть бессмысленно а
00:13:42
во-вторых потоки watch поэтому не
00:13:45
получится так сделать
00:13:46
банально не за лоха потока
00:13:51
то есть мы называем циклон дальше мы
00:13:54
пишут в канал и дожидаемся учитывание с
00:13:58
канала и завершаем мы дожидаемся пока
00:14:01
say flat работы
00:14:03
причем мы здесь можем убрать flow мы
00:14:08
здесь можем сделать
00:14:12
int у нас пять раз мы в канал можем
00:14:17
высылать наши это пять раз по 5 раз
00:14:22
поэтому сейчас делаем
00:14:25
пять винтов
00:14:30
запускаем мы получаем от 0 до 4 если мы
00:14:35
сделаем 6 мы получим дазлом а
00:14:39
если d-dog почему потому что мы здесь
00:14:42
читаем из канала оттуда никто ничего не
00:14:45
пишет и никогда не напишут иголка об
00:14:48
этом знает и в этому such as a job
00:14:52
сейчас возникает оно очевидно вопросы то
00:14:55
что как так у тебя что надо знать
00:14:57
сколько раз здесь
00:15:00
высчитываются данных из канала будут
00:15:04
надо знать сколько сколько данных канал
00:15:06
попадает и тогда читать ни больше ни
00:15:08
меньше и я скажу что нет не обязательно
00:15:13
так потому что по каналу можно
00:15:17
оперироваться а именно использовать for
00:15:22
цикл
00:15:24
как это будет работать
00:15:27
по и
00:15:30
присваивания range
00:15:33
of an тмп
00:15:37
то есть мы оперируем ся по каналу нас
00:15:40
ключевое слово упор дальше пошел дальше
00:15:43
наша переменная мы инициализируем мы
00:15:46
инициализируем значением из канала hot i
00:15:49
in range чем соответственно он будет
00:15:53
ждать пока туда придут данному
00:15:56
запускаем
00:15:59
мы ноль один два три четыре и упали
00:16:03
почему мы упали потому что мы дальше
00:16:06
ждём данных из канала
00:16:09
мы дальше что оттуда никто не пишет
00:16:11
пойду до пяти раз счет записали и больше
00:16:15
туда никто ничего не пишет а главный
00:16:17
поток все еще ждет пока туда кто то что
00:16:18
их напишет одно никто ничего никогда
00:16:21
больше не напишу тоже закончил сара
00:16:23
логика и для этого каналы можно
00:16:26
закрывать
00:16:28
да чтобы
00:16:30
обозначить факт того что данных больше
00:16:34
не будет друг прекращаешь дать меня не
00:16:38
жди меня до нижними мы берем и в конце
00:16:43
работы делаем клаус x
00:16:46
то есть мы закрываем канал и когда мы
00:16:49
закрываем канал мы отсюда выходим из
00:16:54
этого цикла мы выйдем дождь канал закрою
00:16:57
и ошибки уже не будет
00:17:00
ноль один два три четыре и
00:17:03
функция держат нож мы закрыли канал и
00:17:07
канал и это не тоже самое что файлы
00:17:11
каналы это не то же самое как какой-то
00:17:14
жареный лесов какой-то принципе ресурс
00:17:16
его не надо всегда закрывать можно
00:17:18
вставить открытого урок согласимся
00:17:21
ставится но закрытие канала интересно и
00:17:25
полезно и механика для того чтобы
00:17:29
управлять
00:17:31
процессов получения данных из канавок
00:17:35
до также важный момент в закрытый канал
00:17:39
нельзя ничего послать если мы пошлем
00:17:42
закрытый канал что-либо мы получим
00:17:45
памятку по не как отдельный вид
00:17:49
исключение в ганге самый такой жесткий с
00:17:54
ними можно работать это мы разберем в
00:17:56
одном из следующих уроков поэтому
00:17:58
закрытый канал нельзя ничего писать если
00:18:01
вы попытаетесь
00:18:04
также
00:18:08
пальчик из закрытого канала но вы ничего
00:18:13
оттуда не вычитает данном случае 40
00:18:20
еще раз вы читаете
00:18:23
получить опять дефолтное значение in the
00:18:27
если здесь будет стрим
00:18:32
с
00:18:34
еске а потом вычитаем пустые строки ну
00:18:38
дефолтное значение для пустое и стар и
00:18:40
когда мы инициализируем структуру у нее
00:18:43
поля получают
00:18:45
капуста 0
00:18:51
и
00:18:56
ещё я хотел бы разобрать с вами ключевое
00:18:59
слово select
00:19:01
она позволяет грудь и нам
00:19:05
учитывать несколько каналов да и таким
00:19:09
образом делать mode и паука манекенщиц
00:19:12
множество общение
00:19:14
значит ключевое слово силе select
00:19:17
блокируется
00:19:18
до тех пор пока какой-то кейс не
00:19:21
выполнить
00:19:23
мы создаем функцию
00:19:30
телефон
00:19:32
функцию select вам что мы в ней будем
00:19:35
делать
00:19:36
мы в ней запустим бесконечный цикл
00:19:40
мы презираем сейчас x равна нулю
00:19:45
далее запустим бесконечный цикл прешова
00:19:47
select 600 кейс и здесь взял канал с
00:19:52
данными канал с данным и в этот
00:19:56
в этот канал с данными мы будем
00:19:58
отправлять
00:19:59
будем отправлять x и как суммы будем
00:20:03
прибавлять единичку и второй канал
00:20:06
которым будем использовать это exit если
00:20:09
он акрам пришли данные в exit там и
00:20:13
заканчивая не заканчивал выполнение
00:20:17
нашего бесконечных бесконечного цикла и
00:20:19
выходят
00:20:20
телесно у нас должен быть канал дата
00:20:23
канал exit и это все каналы и покрыл
00:20:27
2-х на
00:20:30
такой бесконечный цикл этого мы
00:20:33
отключили минут select если у нас
00:20:37
кейс и к нам пришли данный вычет мы
00:20:40
выйдем из турции если не пришли то мы за
00:20:43
перезаписано данные мудаку если кто-то
00:20:46
читает что-то из даты мы запишем данную
00:20:49
дату резко функции мы нам нужно создать
00:20:54
канал
00:20:58
дата создать канал экзит
00:21:01
после этого
00:21:04
нам нужно закусить сейчас функцию
00:21:07
который будет вычитывать канал дату но
00:21:10
перед этим
00:21:12
будут важный момент я сейчас буду
00:21:14
создавать анонимную функцию да просто на
00:21:18
мину и функцию вот такую
00:21:20
и делать ее рутинный вот я создал
00:21:23
анонимную функцию
00:21:24
когда просто анонимный функция
00:21:26
вызывается а когда вы при запуске
00:21:29
вызовется
00:21:30
сейчас это закомментирую мы с вами это
00:21:34
уже одном из уроков разбирали к нему
00:21:38
функция мы запускаем
00:21:40
при получаем холова данная функция
00:21:44
вызывается если не подставлю салага до
00:21:47
ключевого слова то это станет грудь и
00:21:49
это станет давать или и теперь в этом в
00:21:53
этой группе я создаю method for и
00:21:58
донести посчитаем и мы будем
00:22:02
вычитывать
00:22:03
из канал и дата
00:22:08
[музыка]
00:22:10
данные 10
00:22:13
10 раз мы
00:22:15
учитываем
00:22:17
когда мы вычитали 10 раз нам нужно звук
00:22:21
канал экзит отправить код какой
00:22:25
мы говорим что мы закончили надо случай
00:22:29
канал экзит он будет индикацией того что
00:22:33
данный большими на больше данных не
00:22:34
нужно больше данных не будет
00:22:37
но больше никто чуть больше никто читать
00:22:39
не собираюсь принципе можно больше пить
00:22:42
перестали не видят этот x
00:22:45
мы предаёмся канал дату каналы где и
00:22:50
запуска и
00:22:53
у нас ноль один два три четыре пять
00:22:56
шесть семь восемь девять то есть мы
00:23:00
десять раз вычитываем данные потом мы
00:23:04
отправляем в экзит 0 здесь у нас
00:23:06
бесконечный цикл и select если кто-то
00:23:10
читает данные из даты до из канала дата
00:23:13
то мы отправляем в этот канал икс икс и
00:23:17
прибавляем как единичку если же никто не
00:23:20
читает из даты смотрим если данные в
00:23:24
канале и если даже если появились данных
00:23:27
канале экзит мы принцем принцем строчку
00:23:30
и выходим на бесконечный цикл
00:23:32
если же не тут не тут то есть никто не
00:23:35
читает данные из даты и выпить никто
00:23:38
ничего не пишет мы будем сидеть и ждать
00:23:42
вечность
00:23:44
месяц пока кто-нибудь любом дату учет
00:23:47
езда то не попадается почитать либо в
00:23:49
excel кто-нибудь что-нибудь не пошли и
00:23:52
помимо всего прочего
00:23:54
если же ждать не нужно то здесь можно
00:23:58
сделать секцию дешевку
00:24:10
и функция дефолт вызовется если у нас не
00:24:13
отработала не то не то здесь мы по сути
00:24:17
можем до уайтинг
00:24:20
описать рейтинг и
00:24:23
двумя уснуть до на какое-то количество
00:24:28
миллисекунд
00:24:29
уснуть и подождать
00:24:32
опять а продал потом опять начать читать
00:24:35
появились данные или не появились до
00:24:43
мыса разобрали основные вещи по валюте
00:24:47
нам следующий урок будет посвящен
00:24:48
примитивом синхронизации сегодня на этом
00:24:51
все большое спасибо за просмотр ставьте
00:24:54
лайк поддерживаете канал пишите
00:24:56
комментарии
00:24:57
да я еще хотел кое-что добавить вы
00:25:00
просили домашнее задание а
00:25:04
давайте мы попробуем с вами
00:25:08
попробуйте без примитивов синхронизации
00:25:13
кому оклад без
00:25:17
примитива
00:25:20
синхронизацию то есть без пакета синга
00:25:25
написать
00:25:27
асинхронный и псих калькулятор
00:25:30
калькулятор на грудь их то есть что что
00:25:34
он должен на принимать на вход на потом
00:25:37
должен принимать два плюс два
00:25:39
три плюс s 600 так далее а
00:25:44
7 умножить 7 умножить на 87 на 7 до 9
00:25:49
поделить на 3 и дальше каждое выражение
00:25:53
запускать
00:25:54
асинхронно то есть каждое выражение
00:25:56
вычислять в грудь и
00:26:01
каждое выражение то есть вот я ему на
00:26:04
вход должен подать вот такой вот такой
00:26:07
кусочек вот такой набор выражений и
00:26:11
результатом его должно быть вот как года
00:26:16
вот такая строчка
00:26:19
499 ну или можно красиво сделать до
00:26:21
вывести сделать красиво
00:26:25
результатом выплат вот такая вот такая
00:26:28
строчка
00:26:29
он должен брать исходное выражение и
00:26:32
добавлять к нему ответ вот
00:26:35
так что такой калькулятор значит по
00:26:39
поводу
00:26:40
домашних заданий сейчас попробуем
00:26:42
сделать этот пойдёт не пойдет значит как
00:26:44
сдавать как сдавать берете идете на
00:26:48
getjar создаете себе там аккаунт из не
00:26:50
создан создаете
00:26:53
репозитории
00:26:55
удается ли передали в этом репозитории
00:26:58
пишете код уж этот камень сети куда
00:27:03
пушки
00:27:04
веточку
00:27:06
main ветка до переименовали век кушать и
00:27:10
веточку моим и создаете рекорд
00:27:14
на татами . ним и и на веточку будет
00:27:17
калькулятор калькулятор и создайте пол
00:27:20
request
00:27:22
calculate как алку
00:27:25
калькулятор
00:27:26
вот такой был ли класса создаете
00:27:31
зрители признали здесь создаете ветку в
00:27:34
эту ветку калькулятор
00:27:37
пишете код комитете кушать и веточку
00:27:41
калькулятор и создайте полу request
00:27:43
ветки калькулятором и и дальше telegram
00:27:48
after month
00:27:50
группа куда заходите и
00:27:55
присылаете
00:27:57
туда ссылку на пауль квест я захожу
00:28:03
делаю кадра view
00:28:06
девы подругу
00:28:09
до
00:28:12
можно по-разному написать такой
00:28:14
калькулятор на грудь и нах это не
00:28:17
тривиальная история даша интересная
00:28:20
задача будут вопросы так же заходите в
00:28:22
telegram будем обсуждать возможны
00:28:26
варианты решения также хаму неудобен
00:28:29
telegram можно зайти в группу вконтакте
00:28:31
там тоже я есть та же присылайте туда
00:28:34
туре квеста там тоже будем обсуждать
00:28:36
тоже делали веков
00:28:40
на этом точно все спасибо большое за
00:28:43
просмотр
00:28:46
пока

Описание:

В этом видео мы поговорим про многопоточность: горутины и каналы в языке Go. В этой серии уроков мы научимся разрабатывать используя язык Golang. Начнем с азов и закончим полноценным приложением с API, бизнес логикой и базой данных. P.S. это последнее видео в котором отвратный звук. Я все купил для звука и теперь он будет гораздо лучше, уже почти закончил монтаж ролика про Apache Kafka. С радостью хочу вам представить, что я запускаю курс “Начальная подготовка” по языку Golang. Курс как для совсем начинающих в сфере IT, так и для тех, кто хочет просто изучить язык Go. Больше обо мне и курсах можно прочитать здесь: https://artofedu.org/ Больше информации есть в ролике на ютубе: https://www.youtube.com/watch?v=E0b0dmwf-6c На все вопросы могу ответить в Телеграм группе канала и в личных сообщениях. Урок 1. Начало. Веб-сервер в 3 строки в конце урока! https://www.youtube.com/watch?v=G6eZaX_lgbQ Урок 2. Основы. Продолжение. Циклы, ветвления https://www.youtube.com/watch?v=5MZWiUHdSBA Урок 3. Основы. Продолжение. Указатели, структуры, массивы и слайсы https://www.youtube.com/watch?v=0s3Jz8Y_cq8 Урок 4. Основы. Итератор for range и структура map https://www.youtube.com/watch?v=uixi3pH0fgw Урок 5. Основы. Функции и методы https://www.youtube.com/watch?v=NmNjOiKHQt4 Урок 6. Основы. Интерфейсы https://www.youtube.com/watch?v=vR-UVn-5AOs Урок 7. Основы. Ошибки https://www.youtube.com/watch?v=a3Byzdiey9Y Урок 8. Основы. Тестирование. Часть 1 https://www.youtube.com/watch?v=smJmTERC1cw Другие видео: Изучаем Python. Основы + Бонус: Пишем приложение на FastAPI https://www.youtube.com/watch?v=JTbNTllXJBk Разработка системы заметок на Python, Golang и микросервисы в 2021 году https://www.youtube.com/watch?v=Txi95RQPRP0 Как стать разработчиком. Часть 1 https://www.youtube.com/watch?v=tUQrrm3UcbI Что такое микросервисы за 200 секунд https://www.youtube.com/watch?v=Q99r7ssHrvU VK: https://vk.com/theartofdevel Telegram Group: https://t.me/theartofdevel Дружественный Golang чат: https://t.me/gogolang ---- Меня зовут Артур Карапетов и я занимаюсь всем, что связано с разработкой. Я создаю высоконагруженные информационные системы, стартапы, занимаюсь личным обучением людей в сфере разработки (программисты, аналитики, системные администраторы), также я помогаю компаниям и стартапам с обучением людей работать и повышением их квалификации, об этом можно почитать здесь: https://mitkadr.ru. На этом канале я выкладываю ролики на интересующие меня темы, здесь можно найти серию роликов про создание информационной системы с нуля, а также можно найти серию уроков по языкам, которые я люблю. Добро пожаловать и хорошего просмотра!

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Изучаем Golang. Урок 9. Многопоточность. Горутины и каналы"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Изучаем Golang. Урок 9. Многопоточность. Горутины и каналы" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Изучаем Golang. Урок 9. Многопоточность. Горутины и каналы"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Изучаем Golang. Урок 9. Многопоточность. Горутины и каналы" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Изучаем Golang. Урок 9. Многопоточность. Горутины и каналы"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Изучаем Golang. Урок 9. Многопоточность. Горутины и каналы"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.