Java GAE/J异步数据存储API:如何执行与UNIX select等效的操作?

Java GAE/J异步数据存储API:如何执行与UNIX select等效的操作?,java,google-app-engine,google-cloud-datastore,Java,Google App Engine,Google Cloud Datastore,JavaGoogleAppEngine异步数据存储API提供了一种方法来执行异步读取,然后稍后询问是否已经完成,如果需要,可以使用可选的超时来阻止它。然而,有一件事我想做,但我找不到一个方法来做,那就是相当于一个unixselect 就是我想, 对数据存储发出一系列读取,然后 睡觉吧,直到他们中的任何一个回来 据我所知,API要求我循环异步读取返回的未来,并询问isDone(),直到其中一个表示true;这消耗了我所付出的CPU时间,毫无用处 我是否遗漏了什么,或者使用GAE/J异步数据存储AP

JavaGoogleAppEngine异步数据存储API提供了一种方法来执行异步读取,然后稍后询问是否已经完成,如果需要,可以使用可选的超时来阻止它。然而,有一件事我想做,但我找不到一个方法来做,那就是相当于一个unixselect

就是我想,

  • 对数据存储发出一系列读取,然后

  • 睡觉吧,直到他们中的任何一个回来

  • 据我所知,API要求我循环异步读取返回的未来,并询问isDone(),直到其中一个表示true;这消耗了我所付出的CPU时间,毫无用处


    我是否遗漏了什么,或者使用GAE/J异步数据存储API无法获得UNIX选择的效果?

    dan和我脱机讨论了这一点。简单的回答是,目前还没有直接的方法来实现这一点,但是java和python在应用程序引擎中都支持线程,因此您可以在userland中轻松地实现这一点。更重要的是,go's channel和select语言原语正是这样做的,所以它绝对值得一看