lection_6/

directory
v0.0.0-...-396bba6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2022 License: MIT

Directories

Path Synopsis
10_race
atomic
Также, когда само общее значение - это просто число Можно использовать пакет atomic, для того, чтобы гарантировать очередность изменений объекта
Также, когда само общее значение - это просто число Можно использовать пакет atomic, для того, чтобы гарантировать очередность изменений объекта
mutex
Go рутины, одновременно работающие с общими данными сами собой не могу синхронизироваться Как пример защиты данных от небезопасных изменений, можно использовать структуру Mutex У нее также нет публичных полей, но, есть два публичных метода Lock(), который даст только одной подпрограмме продолжить выполнение блока, остальне заблокируются в ожидании Unlock(), который снимает лок, захваченный ранее
Go рутины, одновременно работающие с общими данными сами собой не могу синхронизироваться Как пример защиты данных от небезопасных изменений, можно использовать структуру Mutex У нее также нет публичных полей, но, есть два публичных метода Lock(), который даст только одной подпрограмме продолжить выполнение блока, остальне заблокируются в ожидании Unlock(), который снимает лок, захваченный ранее
Более сложный пример, с использованием пула обработчиков для типовых задач
Более сложный пример, с использованием пула обработчиков для типовых задач
Если при запуске программы все go рутины окажутся в состоянии ожидания, runtime выкинет панику, с сообщением all goroutines are sleeping
Если при запуске программы все go рутины окажутся в состоянии ожидания, runtime выкинет панику, с сообщением all goroutines are sleeping
Но, безопаснее использовать пакет sync, в частности структуру WaitGroup У нее нет публичных полей, но есть 3 метода Add увеличивает счетчик ожидаемых работ, Done декрементит, Wait - блокируется, пока внутренний счетчик не станет равным 0
Но, безопаснее использовать пакет sync, в частности структуру WaitGroup У нее нет публичных полей, но есть 3 метода Add увеличивает счетчик ожидаемых работ, Done декрементит, Wait - блокируется, пока внутренний счетчик не станет равным 0

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL