簡體   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