0

私の質問は、「Google appengine はシングル スレッド化されていますか?」ということです。Java でスレッド化を使用して独自のスレッドを開始することはできませんが、バックエンドを使用してスレッドを開始することはできます。

私は、リクエストがどのように処理されるかについて、リクエストをスレッド化することについて懸念しています.appengineで各リクエストがキューに入れられ、1つずつ処理されることを誰かが読みました.そして、リクエストをキューに入れることができる最大時間を設定できます.サーバーリクエストまでの時間最大時間を超えると、新しいインスタンスが作成されます。

では、単一インスタンス (無料クォータ) を使用したい場合はどうすればよいでしょうか。

r1 、 r2 、r3、r4 として複数のリクエストを取得した場合 (この順序で)、各リクエストは次々に処理されますか (単一インスタンスの場合)?

負荷が増加し、新しいインスタンスが動的に作成されたときに複数のインスタンスを作成すると、インスタンス 1 のメイン メモリに存在するデータもインスタンスに複製されますか?

2 つのインスタンスのデータは常に同期されますか?

4

2 に答える 2

3

ニックが言ったことに同意しますが、次のステートメントも指摘したいと思います。「Javaでスレッドを使用して自分のスレッドを開始できないことを知っていると尋ねると」

もはや真実ではありません。詳細については、スレッドに関するセクションをご覧ください: https ://developers.google.com/appengine/docs/java/runtime#The_Sandbox

したがって、要約すると、AppEngineはいくつかの方法でマルチスレッド化されます
。-リクエストごとにスレッドを使用して単一のインスタンスでリクエストを同時に処理できます
-単一のリクエストで追加のスレッドを明示的に開始できます

于 2012-04-27T11:11:12.650 に答える
1

docsに記載されているように、Java アプリで同時リクエストを有効にすることができます。この場合、複数のスレッドが生成され、それぞれがリクエストを個別に処理します。

インスタンスは、すでに実行中のインスタンスから複製されたり、同期されたりすることはありません。特定の変更可能なインスタンスの状態に依存しない方法でコードを記述する必要があります。

于 2012-04-27T10:50:39.717 に答える