2012-04-27 49 views
0

我的問題是「是谷歌的AppEngine單線程?。現在,當我問,我知道,我不能在Java中使用線程開始我自己的線程。但是,我們可以使用後臺線程啓動是谷歌的AppEngine單線程?(JAVA)

我很擔心線程處理請求的方式。我在appengine的某個地方讀取每個請求排隊,然後一個接一個地服務。我可以配置請求可以排隊的最大時間。如果時間服務器請求超過最大的時間,然後創建新實例。

所以,如果我想使用單一實例(免配額)的東西。

如果我得到多個請求爲R1,R2,R3,R4(順序)。然後將每個請求後,其他(在單一實例的情況下)提供服務呢?

如果我創建時動態創建的負荷增加和新的實例將存在於實例中的一個的主存儲器中的數據將它克隆到例如太多個實例?

將同步在2個實例的數據所有的時間?

+0

你應該可以看到一個表中,列出「實例」,每個實例應該代表一個HTTP進程,所以說,每道工序「是seperat線程」。 – 2012-04-27 09:08:24

+0

哪張桌子,我在哪裏可以找到這張桌子? – user93796 2012-04-27 09:17:35

回答

1

正如the docs說,你就能夠在Java應用程序的併發請求,在這種情況下,多個線程將被催生,各自獨立地處理請求。

實例不是克隆關閉已經運行的情況下,也不會以任何方式同步的 - 我們希望你寫你的代碼不依賴於特定的可變實例狀態的方式。

3

很同意尼克說,也想指出的是這樣一句話: 「現在,當我問,我知道,我不能在Java中使用線程開始自己的線程」

不再是真實的。有關詳細信息,請參閱有關螺紋部分在這裏: https://developers.google.com/appengine/docs/java/runtime#The_Sandbox

因此,簡言之,App Engine是多線程的幾種方法:
- 請求可以同時使用每一個線程的單個實例處理要求
- 一個請求可以明確地開始額外的線程