Изучаем Golang. Урок 10. Многопоточность. Примитивы синхронизации

preview_player
Показать описание
В этом видео мы разберем примитивы синхронизации в языке Go.
Приятного просмотра!

С радостью хочу вам представить, что я запускаю курс “Начальная подготовка” по языку Golang. Курс как для совсем начинающих в сфере IT, так и для тех, кто хочет просто изучить язык Go.

Больше обо мне и курсах можно прочитать здесь:

Больше информации есть в ролике на ютубе:

На все вопросы могу ответить в Телеграм группе канала и в личных сообщениях.

Другие видео:

----

На этом канале я выкладываю ролики на интересующие меня темы, здесь можно найти серию роликов про создание информационной системы с нуля, а также можно найти серию уроков по языкам, которые я люблю. Добро пожаловать и хорошего просмотра!

#golang #урок #tutorial #голенг #development #howto #learnbasics #coding #programming #изучаемIT #программирование #разработка
Рекомендации по теме
Комментарии
Автор

С радостью хочу вам представить, что я запускаю курс “Начальная подготовка” по языку Golang. Курс как для совсем начинающих в сфере IT, так и для тех, кто хочет просто изучить язык Go.

Курс доступен в 3 вариациях:
1. Онлайн курс с лекциями, заданиями, чатом менторской поддержкой.
2. Полный видеокурс
3. Отдельные блоки с лекциями

Больше обо мне и курсах можно прочитать здесь:

Записаться на курс можно вот тут:

А видео курс тут:

А отдельные блоки с видео тут:

Больше информации есть в ролике на ютубе:

На все вопросы могу ответить в Телеграм группе канала и в личных сообщениях.

TheArtofDevelopment
Автор

На 21:45 все дело в шедуляре, цикл выполниться мгновенно, потому в горутину попадет только последнее значение переменной i, то есть 9. Потому нужно использовать хак k := i или еще лучше передавать переменную в горутину:

go func(i int) {
// some code here
}(i)

UAStriker
Автор

Спасибо за уроки.
Не разбирался почему предлагает вынести перменную за цикл, но это скорее всего из-за захвата перменной, т.е. если этого не сделать, то мы получим не совсем ожидаемый результат - рандмоное кол-во логов будут одинаковыми. (10 goroutine working)

vladkorsak
Автор

Спасибо за видеоурок! Один момент неясен: зачем использовать Lock, Unlock в методе Value? Он же вызывается единожды как обычная функция.

isded
Автор

Очень полезный урок. Спасибо! Сейчас я понял, что такое поток, канал и как они работают. Можете ли вы сделать видеоурок о микросервисах в Go?

AkramAzizmurodov
Автор

Спасибо, очень полезно, и хорошо объясняете :) Только звук под конец разъехался, и периодические прерывания на уведомления напрягают :D
А можете привести пример использования sync.Once в реальных проектах?

GagarinX
Автор

Я запутался, в этом уроке говорится, что RWMutex используется только при изменении охраняемых данных, а с другого канала говорится, что RWMutex используется только при чтении данных

oebtomg
Автор

Что за пример на 14:21? Зачем делать defer mu.Unlock(), ведь логичнее и быстрее будет обработать все последовательно? А если это пример, то в каких случаях defer применим?

adenshe
Автор

ничего не понял, но, как говорится, очень интересно)
Будет ли это использоваться в реальном проекте?

alexandrvalov
Автор

Странно. На 5:20 с первой попытки вывелось куча ошибок. Мне же пришлось запустить код несколько раз, что бы получить ошибки) Первый несколько раз стабильно выводилась - 1000. С чем это связано? Всё пошло по "хорошему пути" и ничего не не успело блокировать мапку?

И ещё один момент странный. Могу только предположить, что это связано с захватом i, но если не передавать в горутину i в качестве параметра то на выводе творится не весть что) Не стабильно 9, как ожидалось, а иногда мог повторяться счётчик горутин. ну типа "0, 8, 8, 8, 8, 3, 5, 6, 7, 2". Почему же всё таки меняется значение счётчика?)

xmrquor
Автор

Не могу понять чего, но у меня без атомика - каунтер нормально прибавляется. Выдает 10000 :)

evzheniq
Автор

это какой-то прикол? урок про синхронизацию а видео и объяснения рассинхрон на 4 секунды

pie_company
Автор

Очень мелкий шрифт. Нужно напрягать глаза, чтобы увидеть исходный код. Смотрю на смартфоне.
Если смотреть на автомагнитоле - исходный код вообще не видно.
Другие блогеры увеличивают размер шрифта в студии, и всё хорошо читается.

ksdoupj
Автор

наверное потому что го рутину используем

ivansofronov
Автор

19:03 / 32:55

звук немного пердеть стал

gamerclach