1

Java Google App Engine Async Datastore API は、非同期読み取りを実行してから、まだ完了しているかどうかを後で確認し、必要に応じてオプションのタイムアウトでブロックする方法を提供します。しかし、私がやりたいと思っていることの 1 つは、UNIX の select に相当するものです。

つまり、私はしたい:

  1. たとえば、一連の読み取りをデータストアに発行してから、

  2. いずれかが戻ってくるまで、ただ寝てください。

私が知る限り、API では、非同期読み取りによって返された Future をループして、そのうちの 1 つが true になるまで isDone() を要求する必要があります。これは、私が支払っている CPU 時間を無駄に消費します。

何か不足していますか、それとも GAE/J Async Datastore API を使用して UNIX 選択の効果を得る方法はありませんか?

4

1 に答える 1

0

ダンと私はこれについてオフラインで話し合いました。簡単に言えば、現在これを行う直接的な方法はありませんが、アプリ エンジンの java と python はどちらもスレッド化をサポートしているため、ユーザーランドで簡単に実行できます。要点を言えば、go の channel と select 言語のプリミティブはまさにこれを行うので、一見の価値があります。

于 2012-05-16T19:48:28.070 に答える