我有一个multiprocessing程序在哪里
multiprocessing.Manager().list())我multiprocessing.Lock()在添加到列表或从中删除时实现了锁定(via ).由于有一个"馈线"过程和几个(10-40个)"消费者"过程都在争夺锁定,并且消费者流程很快,我最终得到的"馈线"过程很难获得锁定.
获得锁定时是否存在"优先级"的概念?我希望"馈线"流程能够比其他流程更优先获得它.
现在我通过让"消费者"进程在尝试获取锁定之前等待一段随机时间来缓解这个问题,而"馈送"进程就在那里(当它结束时设置一个标志).这是一个有效的解决方法,但它很丑陋并且几乎没有效果(我有进程等待random.random()*n几秒钟,n进程数量在哪里.这是一个完全编号,可能是错误的).