Java EE 容器中的執行緒:為什麼要避免執行緒產生?
在 Java EE 開發中,在容器內產生新執行緒通常是皺起眉頭。這是因為:
-
資源管理問題:容器環境中的所有資源都應該由伺服器管理,用於監控和協調目的。當執行緒生成時,它們可能無權存取這些資源。
-
上下文限制: Java EE 環境中執行緒的執行上下文通常附加到執行緒本身。在容器外部建立的自訂執行緒可能無法存取此上下文,包括 JNDI 查找功能。
替代方法:
對於非同步操作,建議幾種方法存在方法:
-
工作管理員: Java EE 規格提供了javax.enterprise.concurrent.WorkManager接口,該接口允許開發人員創建由容器監視和管理的託管線程。
-
託管類別(EJB、CDI):託管類別(例如 EJB 和 CDI bean)可用於非同步操作。它們提供託管線程池,並且可以注入容器內可用的資源和服務。
-
排程器 (JSR-349): Java EE Scheduler 規格定義了用於排程任務的標準化 API Java EE 環境。它允許以指定的時間間隔或基於觸發器執行任務。
注意:本文提供的資訊是基於 2009 年 Java EE 的狀態。然後,Java EE 中的執行緒管理得到了改進。請查閱您所使用的特定平台和版本的最新文檔,以獲取最新的最佳實踐。
以上是為什麼要避免在 Java EE 容器中產生執行緒?的詳細內容。更多資訊請關注PHP中文網其他相關文章!