Щоб очікувати на закінчення роботи кількох горутин, ми можемо скористатись групою очікування. |
|
|
|
|
|
Це функція, яку ми виконаємо в кожній горутині. |
|
Sleep to simulate an expensive task. |
|
|
|
Ми скористаємось |
|
Збільшимо лічильник Групи Очікування для кожної запущеної горутинки. |
|
Уникайте перевикористання значення |
|
Заверніть виклик воркеру у замикання що переконається доповісти WaitGroup про завершення роботи. при цьомі підходи воркер не має потреби бути вкурсі про якісь примітиви багатопоточного виконання. |
|
Група Очікування блокує виконання до моменту поки лічильник знову не буде відкатане до позначки 0. |
|
Зауважте що данний підхід не має визначеного шляху
передавати помилки з воркерів. Для більш докладного використання,
зверніть увагу на
пакунок |
|
Порядок старту та завершення буде іншим. |
|
Наступний приклад: Обмеження Частоти Запитів.