1

Java Google App Engine Async Datastore API 提供了一种方法来进行异步读取,然后稍后询问它是否已经完成,如果需要,可以使用可选的超时来阻止它。但是,我想做但找不到方法的一件事是相当于 UNIX 选择。

也就是说,我想:

  1. 发出一堆,比如说,读取到数据存储,然后

  2. 只是去睡觉,直到他们中的任何一个回来。

据我所知,API 要求我只循环通过异步读取返回的 Futures 并询问 isDone() 直到其中一个为真;这会消耗我付出的 CPU 时间。

我是否遗漏了什么,或者没有办法使用 GAE/J Async Datastore API 获得 UNIX 选择的效果?

4

1 回答 1

0

丹和我离线讨论了这个问题。简短的回答是,目前没有直接的方法可以做到这一点,但应用引擎中的 java 和 python 都支持线程,所以你可以在用户空间中轻松地做到这一点。更重要的是,go 的 channel 和 select 语言原语正是这样做的,所以绝对值得一看。

于 2012-05-16T19:48:28.070 回答