Python 使用ProcessPoolExecutor将锁传递给工作进程 tl;博士:

Python 使用ProcessPoolExecutor将锁传递给工作进程 tl;博士:,python,multiprocessing,locking,Python,Multiprocessing,Locking,将锁传递给ProcessPoolExecutor工作者将使其无法运行 我有一个JSON文件,我想使用ProcessPoolExecutor异步更新 为了避免竞争条件,我想对工人使用一个普通锁。 在尝试了answer中的两种方法并进行了尝试(相同但已更新)后,进程池仍然无法按预期运行 守则: def addToImageVector(路径:str,锁): #查看进程是否正在运行 打印(‘你好’) #我如何使用锁的真实示例 数据:dict=None 带锁: 将open('path\\amount

将锁传递给
ProcessPoolExecutor
工作者将使其无法运行


我有一个
JSON
文件,我想使用
ProcessPoolExecutor
异步更新

为了避免竞争条件,我想对工人使用一个普通锁。 在尝试了answer中的两种方法并进行了尝试(相同但已更新)后,
进程池仍然无法按预期运行


守则:
def addToImageVector(路径:str,锁):
#查看进程是否正在运行
打印(‘你好’)
#我如何使用锁的真实示例
数据:dict=None
带锁:
将open('path\\amounts.json','r')作为f:
数据:dict=json.load(fp=f)
.
.
.
#在另一个函数中,它实际上是主函数
行动中的行动:
lock=m.lock()
cpu的数量=cpu计数()
#最多使用+++个可用cpu
使用_UP_TO=0.5
以ProcessPoolExecutor(max_workers=np.uint16(CPU的数量*USE_UP_TO))作为执行器:
对于os.listdir(normpath(VID_PATH+action))中的文件:
#这是打印出来的
打印(彩色(normpath(VID_PATH+action+file),“绿色”)
#不起作用
submit(addToImageVector,(normpath(VID_PATH+action+file),lock))
输出:
没有
hi-guy
s在输出中。

请提供一个。我试图制作一个,但发现了问题。这是工人们不止一次争论的方式,这使得它失败了。我认为你所说的问题似乎不太可能——这就是为什么我想要一些我可以自己运行的东西——但很高兴听到你发现了真正的问题。
path\boost\b1.mp4
path\boost\b2.mp4
path\boost\b3.mp4
path\boost\b4.mp4
path\boost\b5.mp4
...
path\click\c4.mp4
path\click\c5.mp4
path\click\c6.mp4
path\click\c7.mp4
...
path\click\c9.mp4
path\upgrade\u1.mp4
path\upgrade\u7.mp4
path\upgrade\u8.mp4
path\upgrade\u9.mp4