python - 如何在追加期间写入锁定 zarr 存储?
问题描述
使用时有什么方法可以锁定zarr
商店append
吗?
我已经发现append
与多个进程一起使用是一个坏主意(要追加的批次与商店的批次大小不一致)。我想使用多个进程的原因是因为我需要在将原始数组附加到zarr
存储之前转换它们。如果能够阻止其他进程同时写入但仍然并行执行转换,然后将它们的数据串联起来,那就太好了。
编辑:
感谢 jdehesa 的建议,我开始了解文档的同步部分。我ProcessSynchronizer
在主线程中创建时将磁盘上的一个文件夹的指向传递给了我的数组,然后生成了一堆工作进程concurrent.futures
并将数组传递给所有工作人员,以便他们附加他们的结果。我可以看到它ProcessSynchronizer
做了一些事情,因为我指向它的文件夹充满了文件,但是我的工作人员写入的数组最终丢失了行(与从单个进程写入时相比)。
解决方案
推荐阅读
- android - 如何使用视图绑定在 Kotlin 中正确地膨胀视图
- python - AttributeError:模块 'secrets' 没有属性 'token_bytes'
- r - HBSCAN membership probability
- php - jQuery AJAX 更新和显示/隐藏 Div
- javascript - JavaScript:有没有办法在响应不正确时检测响应是否包含 json 格式的错误消息
- javascript - 使用 JSON 文件中的 unicode 字符串作为函数参数
- linux - Linux Bash 尝试编写清单进度“栏”之类的。替换同一行
- python - Yolov3.weights 未完全读取错误
- python - 邮箱仅在最后一个灯具时有效
- python - seaborn.boxenplot - 如何显示平均值?