
udemy
Udemy - одна из самых больших площадок в мире по доставке обучающего контента от разных авторов всего мира. Присутсвуют курсы практически на любую тему.
Go, часто называемый Golang, хорошо известен тем, что позволяет легко работать с параллелизмом. Чтобы заставить конкретную функцию работать одновременно, все, что нам нужно сделать, это добавить слово «go» к вызову функции, и она будет работать в фоновом режиме как GoRoutine. Встроенный в Go планировщик позволяет убедиться, что данный GoRoutine запускается, когда он должен, и настолько эффективно, насколько это возможно.
Однако это не означает, что работать с параллелизмом в Go просто — безопасное для потоков программирование требует тщательного планирования и, что наиболее важно, требует от разработчиков абсолютно четкого понимания того, как Go работает с параллелизмом.
В стандартной библиотеке Go предлагает нам несколько способов работы с одновременно выполняющимися частями нашей программы прямо в стандартной библиотеке: sync.WaitGroup, который позволяет нам ждать завершения задач; sync.Mutex, который позволяет нам блокировать и разблокировать ресурсы, чтобы никакие две программы GoRoutine не могли одновременно обращаться к одному и тому же месту в памяти; и, наконец, каналы, которые позволяют GoRoutines отправлять и получать данные друг от друга.
Подход Go к параллелизму довольно прост и более или менее резюмирует эту мантру: не общайтесь, разделяя память; вместо этого делитесь памятью, общаясь. Каналы — это средства, с помощью которых мы обычно делимся памятью при общении.
В этом курсе мы подробно рассмотрим использование групп ожидания, мьютексов и каналов. Мы также рассмотрим некоторые проблемы, связанные с параллелизмом, в том числе преждевременное завершение программы и условия гонки. Сначала мы получим хорошее представление о том, как эти вещи работают, решая некоторые из классических задач, встречающихся в области компьютерных наук, включая обедающих философов, проблему производителя/потребителя и проблему спящего цирюльника. Эти проблемы являются классическими по одной причине: они заставляют разработчика найти наилучший подход к работе с кодом, который выполняется одновременно или параллельно.
Наконец, мы закончим курс более «реальной» проблемой, где мы должны зарегистрировать клиента для какой-либо службы подписки и позаботиться о выставлении счетов, регистрации и обо всем, что необходимо для работы клиента. Мы сделаем это, естественно, как можно быстрее, разделив необходимые задачи на более мелкие и запустив их одновременно.
Udemy - одна из самых больших площадок в мире по доставке обучающего контента от разных авторов всего мира. Присутсвуют курсы практически на любую тему.
Узнайте, что такое и как работает параллелизм в Go. Как запускать goroutines и передавать данные между ними. Как синхронизировать выполнение goroutines. Как работает планировщик Go. Как построить потоковые конвейеры с goroutines и каналами. Как распространять данные через API.
Если вы, как и большинство людей, хотите выучить язык программирования, у вас не так много свободного времени. Время, которое у вас есть, чрезвычайно ценно. Если вы хотите изучить язык программирования Google GO, то вам нужен курс, который быстро научит основным навыкам программирования Go.
Это курс, который познакомит вас с основами компьютерного программирования с использованием одного из самых популярных современных языков программирования - Go. Цель курса — не только научить вас программированию, но и помочь вам освоить его основы с большим количеством практики и несколькими проектами. К концу курса вы разовьете очень сильные навыки решения проблем, а также знания для создания собственных нетривиальных программ.
Изучайте Golang с нуля у отраслевого эксперта. Создавайте реальные приложения. Изучите все от основ до продвинутого параллелизма, чтобы пройти путь от новичка до возможности быть нанятым в качестве разработчика Go!
Онлайн-практикум для освоения Golang (Go). 35 заданий. Выполни все задания и стань разработчиком на Go в российских или международных проектах.