【问题标题】:is Google appengine single threaded ?(java)谷歌 appengine 是单线程的吗?(java)
【发布时间】:2012-05-08 00:51:15
【问题描述】:

我的问题是“Google appengine 是单线程的吗?现在当我问我知道我不能通过在 java 中使用线程来启动我自己的线程时。但是我们可以使用后端来启动线程。

我关心如何处理请求的请求线程。我读到有人在 appengine 中每个请求都排队,然后一个接一个地提供服务。我可以配置一个请求可以排队的最长时间。如果时间到服务器请求超过最大时间然后创建新实例。

如果我想使用单实例(免费配额)怎么办。

如果我收到多个请求,如 r1 、 r2 、r3、r4 (按此顺序)。那么每个请求是否会一个接一个地提供服务(在单个实例的情况下)?

如果我在负载增加并且动态创建新实例时创建多个实例,那么实例一的主内存中存在的数据是否也会被克隆到实例中?

2个实例中的数据会一直同步吗?

【问题讨论】:

  • 你应该看到下面的表格,列出了“实例”,每个实例应该代表一个http进程,这样说来,每个进程“都是一个单独的线程”。
  • 哪个表,在哪里可以找到这个表?

标签: java google-app-engine


【解决方案1】:

the docs 中所述,您可以在您的 Java 应用上启用并发请求,在这种情况下将产生多个线程,每个线程独立处理请求。

实例不会从已经运行的实例中克隆出来,也不会以任何方式同步 - 您应该以不依赖于特定可变实例状态的方式编写代码。

【讨论】:

    【解决方案2】:

    同意尼克所说的,但也想指出这个说法: “现在当我问我知道我不能通过在 java 中使用线程来启动我自己的线程时”

    不再正确。有关更多详细信息,请参阅此处有关线程的部分: https://developers.google.com/appengine/docs/java/runtime#The_Sandbox

    因此,总而言之,App Engine 在以下几个方面是多线程的:
    - 请求可以由单个实例同时处理,每个请求使用一个线程
    - 单个请求可能会显式启动其他线程

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 2018-05-13
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      相关资源
      最近更新 更多