2012-04-27 48 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是多线程的几种方法:
- 请求可以同时使用每一个线程的单个实例处理要求
- 一个请求可以明确地开始额外的线程