如何在多线程场景中使用xodus blob?它们应该关闭吗?

时间:2018-04-03 21:03:37

标签: blob vert.x xodus

第一个问题:

documentation states您不应该关闭InputStream方法检索到的getBlob。这种方法的javadoc说明你应该关闭它。谁是对的?

第二个:

我在“异步环境”中使用xodus,其中使用回调和背压检测以协同多任务方式暂停/恢复blob-streaming(在我的特定情况下,vertx写入队列与排水处理程序混合) 。因此,虽然我从不同时从不同的线程访问blob的InputStream,但我可以在时隙中从不同的线程访问它们,这些时隙保证彼此在时间上隔离。这节省吗?

换句话说:documentation告诉我,对同一个blob的“并发访问”是不可能的 - 这是同时意味着不同的线程,还是任何时候不同的线程?

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您不应该像文档中所述那样关闭输入流。我已经修复了javadoc,感谢您的注意。

“并发访问”是指同时从不同的线程访问InputStream的单个实例。如果对流的访问确实是连续的并且保留happens-before order,则协作式多任务处理应该可以正常工作。