Изучаем Golang. Урок 9. Многопоточность. Горутины и каналы
ฝัง
- เผยแพร่เมื่อ 22 ส.ค. 2024
- В этом видео мы поговорим про многопоточность: горутины и каналы в языке Go.
В этой серии уроков мы научимся разрабатывать используя язык Golang. Начнем с азов и закончим полноценным приложением с API, бизнес логикой и базой данных.
P.S. это последнее видео в котором отвратный звук. Я все купил для звука и теперь он будет гораздо лучше, уже почти закончил монтаж ролика про Apache Kafka.
С радостью хочу вам представить, что я запускаю курс “Начальная подготовка” по языку Golang. Курс как для совсем начинающих в сфере IT, так и для тех, кто хочет просто изучить язык Go.
Больше обо мне и курсах можно прочитать здесь:
artofedu.org/
Больше информации есть в ролике на ютубе:
• Анонс: Курс Начальная ...
На все вопросы могу ответить в Телеграм группе канала и в личных сообщениях.
Урок 1. Начало. Веб-сервер в 3 строки в конце урока! • Изучаем Golang. Урок 1...
Урок 2. Основы. Продолжение. Циклы, ветвления • Изучаем Golang. Урок 2...
Урок 3. Основы. Продолжение. Указатели, структуры, массивы и слайсы • Изучаем Golang. Урок 3...
Урок 4. Основы. Итератор for range и структура map • Изучаем Golang. Урок 4...
Урок 5. Основы. Функции и методы • Изучаем Golang. Урок 5...
Урок 6. Основы. Интерфейсы • Изучаем Golang. Урок 6...
Урок 7. Основы. Ошибки • Изучаем Golang. Урок 7...
Урок 8. Основы. Тестирование. Часть 1 • Изучаем Golang. Урок 8...
Другие видео:
Изучаем Python. Основы + Бонус: Пишем приложение на FastAPI • Изучаем Python. Урок 1...
Разработка системы заметок на Python, Golang и микросервисы в 2021 году • Разработка системы зам...
Как стать разработчиком. Часть 1 • Как стать разработчико...
Что такое микросервисы за 200 секунд • Что такое микросервисы...
VK: thearto...
Telegram Group: t.me/theartofd...
Дружественный Golang чат: t.me/gogolang
----
Меня зовут Артур Карапетов и я занимаюсь всем, что связано с разработкой. Я создаю высоконагруженные информационные системы, стартапы, занимаюсь личным обучением людей в сфере разработки (программисты, аналитики, системные администраторы), также я помогаю компаниям и стартапам с обучением людей работать и повышением их квалификации, об этом можно почитать здесь: mitkadr.ru.
На этом канале я выкладываю ролики на интересующие меня темы, здесь можно найти серию роликов про создание информационной системы с нуля, а также можно найти серию уроков по языкам, которые я люблю. Добро пожаловать и хорошего просмотра!
#golang #урок #tutorial #голенг #development #howto #learnbasics #coding #programming #изучаемIT #программирование #разработка
С радостью хочу вам представить, что я запускаю курс “Начальная подготовка” по языку Golang. Курс как для совсем начинающих в сфере IT, так и для тех, кто хочет просто изучить язык Go.
Курс доступен в 3 вариациях:
1. Онлайн курс с лекциями, заданиями, чатом менторской поддержкой.
2. Полный видеокурс
3. Отдельные блоки с лекциями
Больше обо мне и курсах можно прочитать здесь:
bit.ly/3XK1oZp
Записаться на курс можно вот тут:
bit.ly/406V3IY
А видео курс тут:
bit.ly/406VgMg
А отдельные блоки с видео тут:
bit.ly/3Rfmhcj
Больше информации есть в ролике на ютубе:
th-cam.com/video/E0b0dmwf-6c/w-d-xo.html
На все вопросы могу ответить в Телеграм группе канала и в личных сообщениях.
А как вы решаете проблему синхронизации доступа к общей памяти при работе с горутинами? Лично я долго выбирал курсы по IT, рассматривал разные компании, но в итоге остановился на Skypro. Проработав 7 лет в сфере обслуживания, я решил сменить профессию и пройти курс по программированию. Сомневался, что смогу быстро начать зарабатывать, но благодаря поддержке наставника и качественному обучению уже через пару месяцев после окончания курса получил классный оффер и перешел на удаленку))
Обалдеть до чего реклама дошла
Спасибо за простое объяснение. понятно что можно углубиться в тему, но теперь легче, так как общая суть понятна
Это последнее видео в котором отвратный звук. Я все купил для звука и теперь он будет гораздо лучше, уже почти закончил монтаж ролика про Apache Kafka - скоро можно будет оценить!
А про увеличение шрифта забыли
@@interviewhelper551 не забыл. Этот ролик я записал ещё до комментария про шрифт. Следующий будет уже с увеличенным! Спасибо!
Огненный огонь ))) Спасибо за интересные видосики
спасибо вам за фидбек!
Ваше объяснение заходит на ура! Спасибо!
О, вот за дз спасибо, теперь есть возможность попрактиковаться и заполнить существующие "пробелы" в знаниях.
о как раз ждал ролика по горутинах и каналах, спасибо!
Наслаждайтесь! )
Вроде не сложно. Но посмотрю как на деле с калькулятором =)
Спасибо за урок!
Все таки нужно шрифт в IDE делать побольше для Ютуб.
00:00 Вступление
00:58 Горутины
05:51 Каналы
19:00 Ключевое слово Select
Одно слово "легковесный поток" вызывает приятные шоколадно-зефирные ассоциации. И это здорово.
это два слова :-P
спасибо за урок!
Спасибо, очень круто
отличное видео. спасибо
Вам спасибо за фидбек!
Доброго времени суток! Отличный урок, спасибо. Но есть не точности, на 19 минуте, ты говоришь что - "это бесконечный цикл", но верно будет сказать что это - "цикл с пост условием"!
11:30 Если канал НЕбуферизованный, то запись в канал (как и чтение из канала) это одна транзакция из двух шагов. Шаг первый - запись. Шаг второй - чтение.
Внутри канала нет буфера для промежуточного хранения значения. То есть значение передаётся из одной переменной сразу в другую переменную. Если делать и запись, и чтение в одном и том же потоке, то первый шаг (запись) проходит, а на втором шаге (ожидание чтения) всё встаёт колом. Так как команда чтения в другой строке, ниже по исходному коду, а туда ещё нужно дойти.
Есть ещё буферизированные каналы - там другой подход.
0:09 скример
Сбивает с толку, что чтение "в нормальных" условиях обозначается
Хотя нет, разобрался. Либо ты так объясняешь, либо я туповат. Но ты неправильно говоришь, что в select "мы ждем, когда кто-то прочитает" - ждем мы как раз в анонимной функции Print, а в селекте мы спамим запись туда, собственно как только записали, она в Print сразу появляется...
Отличные видео. Вопрос, 10 и 11 урок недоступен, так и должно быть или что то пошло не так?:)
Спасибо за фидбек! 10 и 11 уроки выходят в понедельник и четверг соотвественно.
Насчет Домашнего задания в 9 уроке (Изучаем Golang) про калькулятор. Там если тупо по очереди писать, оно же и так поочереди выполняется, а не вразбрось, разве нет?
Да, но задача то чтобы параллельно все выполнялось
Доброго дня!
Технический вопрос к уважаемому автору)
Я вступил в группу в Телеграме с целью прикрепить ссылку на pull request, но мои сообщения как-будто улетают в "никуда" когда я их пишу) Похоже, что у меня нет доступа или типа того (не особо знаток тонкостей чатов Телеграма), как можно его получить? буду благодарен)
первые 24 часа сообщения со ссылками и любыми медиа (картинки, видео) удаляются ботом. это некая защита от спамеров
с Телеграмм группы чего кикаете ?
там бот который просит сложить 2 числа, чтобы рекламных и спам ботов отсекать
В отдельном потоке
я два раза не повторяю, не повторяю
Чувак, языку Си 45 лет, я тебя удивлю, но там тоже есть многопоточность, конкурентность и параллелизм.
Конечно есть, но не такая простая для использования.
И в Java все это есть.
и в пхп есть, только мозг свернешь как делать =)
Очень все уныло. Автор на пару секунд забыл как получать данные из канала - не пользуется фишками языка...
жаль что у вас сложился такое впечатление. прошли годы, я улучшил свой перподавательский опыт и создал курс artofedu.org/start-go.html можете его попробывать
Мужик, поменяй интро, это пиздец скример
сорри. не было наушников и я не контролировал уровень звука и вставок (
Ой, да ладно, заставляет проснуться перед каждым следующим уроком =))))
Не в обиду аФФтару ;))
офигительная штука!
14:00 Если канал НЕбуферизованный, то запись в канал (как и чтение из канала) это одна транзакция из двух шагов. Шаг первый - запись. Шаг второй - чтение.
11:30 Если канал НЕбуферизованный, то запись в канал (как и чтение из канала) это одна транзакция из двух шагов. Шаг первый - запись. Шаг второй - чтение.
Внутри канала нет буфера для промежуточного хранения значения. То есть значение передаётся из одной переменной сразу в другую переменную. Если делать и запись, и чтение в одном и том же потоке, то первый шаг (запись) проходит, а на втором шаге (ожидание чтения) всё встаёт колом. Так как команда чтения в другой строке, ниже по исходному коду, а туда ещё нужно дойти.
Есть ещё буферизированные каналы - там другой подход.