Программирование Работа с параллелизмом в Go (Golang) (2022)

  • Автор темы VkurseAngel
  • Дата начала
VkurseAngel

VkurseAngel

Старожил
Команда форума
Премиум
14 Фев 2023
26,911
35,762
121
#1
Работа с параллелизмом в Go (Golang)
Working with Concurrency in Go (Golang)
udemy

Изображение Работа с параллелизмом в Go (Golang) (2022)


Go, часто называемый Golang, хорошо известен тем, что позволяет легко работать с параллелизмом. Чтобы заставить конкретную функцию работать одновременно, все, что нам нужно сделать, это добавить слово «go» к вызову функции, и она будет работать в фоновом режиме как GoRoutine. Встроенный в Go планировщик позволяет убедиться, что данный GoRoutine запускается, когда он должен, и настолько эффективно, насколько это возможно.

Однако это не означает, что работать с параллелизмом в Go просто — безопасное для потоков программирование требует тщательного планирования и, что наиболее важно, требует от разработчиков абсолютно четкого понимания того, как Go работает с параллелизмом.

В стандартной библиотеке Go предлагает нам несколько способов работы с одновременно выполняющимися частями нашей программы прямо в стандартной библиотеке: sync.WaitGroup, который позволяет нам ждать завершения задач; sync.Mutex, который позволяет нам блокировать и разблокировать ресурсы, чтобы никакие две программы GoRoutine не могли одновременно обращаться к одному и тому же месту в памяти; и, наконец, каналы, которые позволяют GoRoutines отправлять и получать данные друг от друга.

Подход Go к параллелизму довольно прост и более или менее резюмирует эту мантру: не общайтесь, разделяя память; вместо этого делитесь памятью, общаясь. Каналы — это средства, с помощью которых мы обычно делимся памятью при общении.

В этом курсе мы подробно рассмотрим использование групп ожидания, мьютексов и каналов. Мы также рассмотрим некоторые проблемы, связанные с параллелизмом, в том числе преждевременное завершение программы и условия гонки. Сначала мы получим хорошее представление о том, как эти вещи работают, решая некоторые из классических задач, встречающихся в области компьютерных наук, включая обедающих философов, проблему производителя/потребителя и проблему спящего цирюльника. Эти проблемы являются классическими по одной причине: они заставляют разработчика найти наилучший подход к работе с кодом, который выполняется одновременно или параллельно.

Наконец, мы закончим курс более «реальной» проблемой, где мы должны зарегистрировать клиента для какой-либо службы подписки и позаботиться о выставлении счетов, регистрации и обо всем, что необходимо для работы клиента. Мы сделаем это, естественно, как можно быстрее, разделив необходимые задачи на более мелкие и запустив их одновременно.

Материал на английском языке

Продажник:

Скачать:
 
Последнее редактирование:

Похожие темы


О нас

Слив платных курсов - скачать бесплатно

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

VKURSE.INFO регулярно публикует:

  • слив курсов от лучших онлайн-школ, инфобизнесменов и блогеров;
  • вебинары, марафоны, мануалы, от популярных блогеров на тему здоровья и саморазвития;
  • торрент-курсы, книги и гайды, обучения веб-дизайну, программированию, создания сайтов, бизнеса, продвижения в социальных сетях актуальных сегодня.

Мы ежедневно обновляем нашу коллекцию, чтобы вы могли бесплатно найти и скачать необходимый слив курсов обучения

Быстрая навигация

Меню пользователя