Мне нужно спроектировать систему пула потоков, в данном случае на Python, но меня больше интересует общая методология.
Это должно быть что-то вроде https://www.metachris.com/2016/04/python-threadpool/,где потоки ожидают на холостом ходу, пока некоторые задания не будут помещены в пул.Как это работает, используя условные переменные, мне ясно.
У меня есть еще одно дополнительное требование: задания, которые я помещаю в пул, не могут выполняться все параллельно.Каждый из них имеет класс (я не имею в виду класс объекта здесь, просто простое целое число, которое каким-то образом классифицирует работу), и может быть только одна работа на классработает одновременно .Если задание выдвигается с тем же классом задания, которое выполняется в данный момент, оно должно ждать в очереди, пока последнее не будет выполнено.
Я уже изменил упомянутый класс, чтобы сделать это, но яДостигнутый результат довольно грязный, и я не уверен, что он надежный, поэтому я бы спросил, какие модификации будут предложены или мне следует использовать совершенно другой подход.Опять же: мне не нужен код, а скорее описание.
Спасибо.