java - apache-arrow 中是否可以使用 Java API 在单独的线程中创建部分向量?
问题描述
在 apache 箭头中是否可以并行创建向量(不同的线程)?我假设由于编写器中的 setPosition(...) 调用,向量中条目的创建顺序不相关。但是当我尝试在并行线程中执行此操作时,我遇到了错误。当我按顺序执行时,它工作正常。我将 ComplexWriterImpl 与每个字段的子写入器一起使用。
实际错误是:
java.lang.IllegalStateException:访问 ArrowBuf 的引用计数应 >= 1
我很想知道,如果通过箭头中的编写器(在 Java 中)创建向量是否被设计为可以乱序并使用并行线程。
解决方案
您能否阐明调用是如何并行化的。如果您有线程使用相同的写入器写入不同的位置,这将导致麻烦。 setPosition不是线程安全的,write
调用setSafe()
可能会调整缓冲区的大小。
我想不出为什么单线程乱序更新不起作用的技术原因。但是,我不确定这是否是 setPosition 最初设计的(我认为更典型的用例是跳过空值的写入)。
推荐阅读
- java - Android Play 资产交付:如何重用旧资产包?
- mobaxterm - MobaXterm 网络错误:尝试复制选项卡时连接被拒绝
- multithreading - 分叉一个多线程进程
- java - 在 GUI Java 中遍历数组
- php - 具有相同名称的方法
- node.js - 我在电子中使用 require 时的问题
- javascript - 从 MySQL WHERE IN [值数组] 中选择
- azure - Terraform:如何从列表中的嵌套地图列表中选择一个值?
- powershell - Powershell返回路径中的最后一个现有文件夹
- asynchronous - 如何通过具有完全所有权的内部`async fn func(mut self)`方法实现`Futures::poll`?