繁体   English   中英

Google App Engine Java程序并发

[英]Google App Engine Java Program concurrency

为了提高在Google App Engine中运行的Java程序的执行速度,是否可以在运行时创建其他Java线程来利用数据中心中的空闲计算机?

到目前为止,我发现有冲突的数据。

如果您最关心的是缩短执行时间,请查看Memcache和Tasks。 它们可用于减少或避免读取或写入数据存储区或其他存储选项,获取URL,发送电子邮件等的延迟。如果您进行了许多可以并行运行的困难计算,请查看MapReduce API。

一旦从程序中消除了所有延迟,就没有理由在单个请求中使用多个线程。

请注意,App Engine实例可以使用多线程来同时执行多个请求,因此它们倾向于有效地使用分配的资源。 要启用它,请参阅:

https://developers.google.com/appengine/docs/java/config/appconfig#Java_appengine_web_xml_Using_concurrent_requests

如果遇到需要多线程解决方案的问题,则可以使用线程(如问题中包含的链接所述)。

但是,根据您的推理(“使用数据中心中的空闲计算机”),似乎您被误导了。 因此,您不应使用线程。 您只需要支付机器使用的小时数,而不会花费更多。 唯一会拥有一台闲置机器的情况是,如果您告诉App Engine保持一台额外的闲置机器,从而不必启动一台额外的机器,则您的应用程序会出现大量使用高峰。

在大多数情况下,除非您真正进行并行计算,否则您无需在App Engine中使用多个线程。 例如,数据存储区具有异步API,因此您可以并行执行多个数据存储区操作,而不必自己处理线程。

那有意义吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM