使用时有什么方法可以锁定zarr
商店append
吗?
我已经发现append
与多个进程一起使用是一个坏主意(要追加的批次与商店的批次大小不一致)。我想使用多个进程的原因是因为我需要在将原始数组附加到zarr
存储之前转换它们。如果能够阻止其他进程同时写入但仍然并行执行转换,然后将它们的数据串联起来,那就太好了。
编辑:
感谢 jdehesa 的建议,我开始了解文档的同步部分。我ProcessSynchronizer
在主线程中创建时将磁盘上的一个文件夹的指向传递给了我的数组,然后生成了一堆工作进程concurrent.futures
并将数组传递给所有工作人员,以便他们附加他们的结果。我可以看到它ProcessSynchronizer
做了一些事情,因为我指向它的文件夹充满了文件,但是我的工作人员写入的数组最终丢失了行(与从单个进程写入时相比)。