Worker Pool (Worker Pool)
3
Асинхронность
Условие:
Нужно реализовать worker pool.
Есть tasksCount задач. Каждая задача имитирует работу: засыпает на короткое время и после этого считается выполненной. Количество воркеров задаётся параметром workersCount.
Каждый воркер должен брать задачи из общей очереди. Нужно вернуть список строк, где для каждой выполненной задачи указано, какой воркер её выполнил.
Задачи должны быть распределены между воркерами через worker pool, а не запуском отдельной горутины/потока на каждую задачу.
Входные данные:
workersCount— количество воркеров.tasksCount— количество задач.
Выходные данные:
Массив строк формата: бд
task X executed by worker YОграничения:
1 <= workersCount <= 100 <= tasksCount <= 100Номер воркера начинается с
1Номер задачи начинается с
1
Пример:
Вход:
workersCount = 3
tasksCount = 10Выход:
[
"task 1 executed by worker 1",
"task 2 executed by worker 2",
"task 3 executed by worker 3",
...
]