Изучаем 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 #программирование #разработка

ความคิดเห็น • 51

  • @TheArtofDevelopment
    @TheArtofDevelopment  ปีที่แล้ว +1

    С радостью хочу вам представить, что я запускаю курс “Начальная подготовка” по языку 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
    На все вопросы могу ответить в Телеграм группе канала и в личных сообщениях.

  • @AudraMcdonald-x9m
    @AudraMcdonald-x9m 25 วันที่ผ่านมา +58

    А как вы решаете проблему синхронизации доступа к общей памяти при работе с горутинами? Лично я долго выбирал курсы по IT, рассматривал разные компании, но в итоге остановился на Skypro. Проработав 7 лет в сфере обслуживания, я решил сменить профессию и пройти курс по программированию. Сомневался, что смогу быстро начать зарабатывать, но благодаря поддержке наставника и качественному обучению уже через пару месяцев после окончания курса получил классный оффер и перешел на удаленку))

    • @GermanBoldyrev
      @GermanBoldyrev 23 วันที่ผ่านมา +2

      Обалдеть до чего реклама дошла

  • @isabbot
    @isabbot 3 หลายเดือนก่อน +1

    Спасибо за простое объяснение. понятно что можно углубиться в тему, но теперь легче, так как общая суть понятна

  • @TheArtofDevelopment
    @TheArtofDevelopment  3 ปีที่แล้ว +19

    Это последнее видео в котором отвратный звук. Я все купил для звука и теперь он будет гораздо лучше, уже почти закончил монтаж ролика про Apache Kafka - скоро можно будет оценить!

    • @interviewhelper551
      @interviewhelper551 3 ปีที่แล้ว +1

      А про увеличение шрифта забыли

    • @TheArtofDevelopment
      @TheArtofDevelopment  3 ปีที่แล้ว +3

      @@interviewhelper551 не забыл. Этот ролик я записал ещё до комментария про шрифт. Следующий будет уже с увеличенным! Спасибо!

  • @skiller4000
    @skiller4000 3 ปีที่แล้ว +5

    Огненный огонь ))) Спасибо за интересные видосики

  • @user-mm3vo4fk2o
    @user-mm3vo4fk2o 2 ปีที่แล้ว +2

    Ваше объяснение заходит на ура! Спасибо!

  • @TheMorni
    @TheMorni ปีที่แล้ว +2

    О, вот за дз спасибо, теперь есть возможность попрактиковаться и заполнить существующие "пробелы" в знаниях.

  • @eugeneshershen7027
    @eugeneshershen7027 3 ปีที่แล้ว +2

    о как раз ждал ролика по горутинах и каналах, спасибо!

  • @peekaboo9340
    @peekaboo9340 2 ปีที่แล้ว +4

    Вроде не сложно. Но посмотрю как на деле с калькулятором =)
    Спасибо за урок!

  • @Undeadlymost
    @Undeadlymost 2 ปีที่แล้ว +8

    Все таки нужно шрифт в IDE делать побольше для Ютуб.

  • @QuickXplain
    @QuickXplain 2 ปีที่แล้ว +6

    00:00 Вступление
    00:58 Горутины
    05:51 Каналы
    19:00 Ключевое слово Select

  • @nikta456
    @nikta456 3 ปีที่แล้ว +2

    Одно слово "легковесный поток" вызывает приятные шоколадно-зефирные ассоциации. И это здорово.

  • @RK-on4si
    @RK-on4si 2 ปีที่แล้ว +2

    спасибо за урок!

  • @johnd.3293
    @johnd.3293 2 ปีที่แล้ว +2

    Спасибо, очень круто

  • @delay_gryaz_chisto
    @delay_gryaz_chisto 3 ปีที่แล้ว +2

    отличное видео. спасибо

  • @isaevalexey7189
    @isaevalexey7189 ปีที่แล้ว +3

    Доброго времени суток! Отличный урок, спасибо. Но есть не точности, на 19 минуте, ты говоришь что - "это бесконечный цикл", но верно будет сказать что это - "цикл с пост условием"!

  • @user-ks8do2up5j
    @user-ks8do2up5j ปีที่แล้ว +5

    11:30 Если канал НЕбуферизованный, то запись в канал (как и чтение из канала) это одна транзакция из двух шагов. Шаг первый - запись. Шаг второй - чтение.
    Внутри канала нет буфера для промежуточного хранения значения. То есть значение передаётся из одной переменной сразу в другую переменную. Если делать и запись, и чтение в одном и том же потоке, то первый шаг (запись) проходит, а на втором шаге (ожидание чтения) всё встаёт колом. Так как команда чтения в другой строке, ниже по исходному коду, а туда ещё нужно дойти.
    Есть ещё буферизированные каналы - там другой подход.

  • @urydmi
    @urydmi 2 ปีที่แล้ว +5

    0:09 скример

  • @nomadirl3380
    @nomadirl3380 ปีที่แล้ว +3

    Сбивает с толку, что чтение "в нормальных" условиях обозначается

    • @nomadirl3380
      @nomadirl3380 ปีที่แล้ว +1

      Хотя нет, разобрался. Либо ты так объясняешь, либо я туповат. Но ты неправильно говоришь, что в select "мы ждем, когда кто-то прочитает" - ждем мы как раз в анонимной функции Print, а в селекте мы спамим запись туда, собственно как только записали, она в Print сразу появляется...

  • @int0matar
    @int0matar 3 ปีที่แล้ว +3

    Отличные видео. Вопрос, 10 и 11 урок недоступен, так и должно быть или что то пошло не так?:)

    • @TheArtofDevelopment
      @TheArtofDevelopment  3 ปีที่แล้ว

      Спасибо за фидбек! 10 и 11 уроки выходят в понедельник и четверг соотвественно.

  • @dangbey4822
    @dangbey4822 2 ปีที่แล้ว +2

    Насчет Домашнего задания в 9 уроке (Изучаем Golang) про калькулятор. Там если тупо по очереди писать, оно же и так поочереди выполняется, а не вразбрось, разве нет?

    • @TheArtofDevelopment
      @TheArtofDevelopment  2 ปีที่แล้ว

      Да, но задача то чтобы параллельно все выполнялось

  • @ruslaneldarov6270
    @ruslaneldarov6270 ปีที่แล้ว +2

    Доброго дня!
    Технический вопрос к уважаемому автору)
    Я вступил в группу в Телеграме с целью прикрепить ссылку на pull request, но мои сообщения как-будто улетают в "никуда" когда я их пишу) Похоже, что у меня нет доступа или типа того (не особо знаток тонкостей чатов Телеграма), как можно его получить? буду благодарен)

    • @TheArtofDevelopment
      @TheArtofDevelopment  ปีที่แล้ว

      первые 24 часа сообщения со ссылками и любыми медиа (картинки, видео) удаляются ботом. это некая защита от спамеров

  • @user-gh1lo1ec3i
    @user-gh1lo1ec3i ปีที่แล้ว +1

    с Телеграмм группы чего кикаете ?

    • @TheArtofDevelopment
      @TheArtofDevelopment  ปีที่แล้ว

      там бот который просит сложить 2 числа, чтобы рекламных и спам ботов отсекать

  • @nikolaikorotaev9470
    @nikolaikorotaev9470 5 หลายเดือนก่อน

    В отдельном потоке

  • @baxsmaxbax
    @baxsmaxbax 2 หลายเดือนก่อน

    я два раза не повторяю, не повторяю

  • @l22dev
    @l22dev 2 ปีที่แล้ว +1

    Чувак, языку Си 45 лет, я тебя удивлю, но там тоже есть многопоточность, конкурентность и параллелизм.

    • @TheArtofDevelopment
      @TheArtofDevelopment  2 ปีที่แล้ว +5

      Конечно есть, но не такая простая для использования.
      И в Java все это есть.

    • @alk2345
      @alk2345 ปีที่แล้ว +1

      и в пхп есть, только мозг свернешь как делать =)

  • @user-rs8ml6zr4t
    @user-rs8ml6zr4t ปีที่แล้ว

    Очень все уныло. Автор на пару секунд забыл как получать данные из канала - не пользуется фишками языка...

    • @TheArtofDevelopment
      @TheArtofDevelopment  ปีที่แล้ว

      жаль что у вас сложился такое впечатление. прошли годы, я улучшил свой перподавательский опыт и создал курс artofedu.org/start-go.html можете его попробывать

  • @5t4lk
    @5t4lk 2 ปีที่แล้ว +3

    Мужик, поменяй интро, это пиздец скример

    • @TheArtofDevelopment
      @TheArtofDevelopment  2 ปีที่แล้ว +3

      сорри. не было наушников и я не контролировал уровень звука и вставок (

    • @alk2345
      @alk2345 ปีที่แล้ว

      Ой, да ладно, заставляет проснуться перед каждым следующим уроком =))))
      Не в обиду аФФтару ;))

  • @xxxbunx
    @xxxbunx 3 หลายเดือนก่อน +1

    офигительная штука!

  • @user-ks8do2up5j
    @user-ks8do2up5j ปีที่แล้ว +2

    14:00 Если канал НЕбуферизованный, то запись в канал (как и чтение из канала) это одна транзакция из двух шагов. Шаг первый - запись. Шаг второй - чтение.

    • @user-ks8do2up5j
      @user-ks8do2up5j ปีที่แล้ว

      11:30 Если канал НЕбуферизованный, то запись в канал (как и чтение из канала) это одна транзакция из двух шагов. Шаг первый - запись. Шаг второй - чтение.
      Внутри канала нет буфера для промежуточного хранения значения. То есть значение передаётся из одной переменной сразу в другую переменную. Если делать и запись, и чтение в одном и том же потоке, то первый шаг (запись) проходит, а на втором шаге (ожидание чтения) всё встаёт колом. Так как команда чтения в другой строке, ниже по исходному коду, а туда ещё нужно дойти.
      Есть ещё буферизированные каналы - там другой подход.