非阻塞,基于CompletableFuture的迭代器

时间:2017-02-01 12:36:51

标签: java nonblocking

我想使用迭代器从数据提取本身抽象数据处理算法。就像,而不是做dataSource.getNextObject()只需要一个标准的java.util.Iterator作为输入并使用它。但是,JDK Iterator正在阻止。并且使用Couchbase或Mongo作为数据源,它具有基于回调的非阻塞客户端库,阻塞迭代器无法实现目的。 JDK没有非阻塞的。

我一直在考虑对java.util.Iterator进行封面,hasNext()next()返回相应的CompletableFuture

我无法在这个主题上谷歌。为什么?这个想法太疯狂了,我做错了吗?

问题是:如果在项目中不允许阻止代码并且下一个/ hasNext操作可能会阻塞相当长的时间,那么如何使用迭代器呢。

更新:对CompletableFuture<E>进行迭代无法正常工作,因为它不会涵盖hasNext(),而hasNext()可能需要实际执行阻止操作。

0 个答案:

没有答案