在这种情况下,我需要设计一个线程池系统,但是我对一般方法更感兴趣。
它必须与https://www.metachris.com/2016/04/python-threadpool/一致,线程等待空闲,直到某些作业被推入池中。使用条件变量的工作原理对我来说很清楚。
我还有一个额外的要求:我正在推入池中的作业无法并行运行。他们每个人都有一个类(我不是指对象类,只是一个简单的整数,以某种方式对作业进行分类)和每个类只有一个作业可以同时运行。如果某个作业被推送到当前正在运行的作业的同一类,则必须在队列中等待,直到后者完成。
我已经修改了上面提到的类来做这个,但是我所取得的是非常混乱,我不确定它是否可靠,所以我会问建议修改什么或者我是否应该采用完全不同的方法。再说一遍:我不需要代码,而是需要描述。
感谢。