根據 OpenJDK 社區目前正在醞釀的計劃,多線程編程對于 Java 開發人員來說可能會變得更容易。對Java感興趣的同學可以參加java培訓,可以獲得快速有效的學習。
結構化并發提案將引入一個庫,該庫將在不同線程中運行的多個任務視為單個工作單元。根據提案,新圖書館將簡化錯誤處理和取消,提高可靠性并增強可觀察性。該計劃的目標包括提高多線程代碼的可靠性和可觀察性,并推廣一種可以消除取消和關閉引起的常見風險的并發編程風格,例如線程泄漏和取消延遲。此時,結構化并發提議并非針對特定版本的 Java。
該提案指出,結構化并發是一種多線程編程方法,它保留了開發人員使用單線程代碼的可讀性和可維護性。它承載的原則是,如果一個任務拆分成并發的子任務,它們都返回到同一個地方:任務的代碼塊。通過返回相同的代碼塊,并發子任務的生命周期被限制在一個句法塊中。因為兄弟子任務被限制在同一個塊中,它們可以作為一個單元進行推理和管理。子任務代表任務(封閉塊中的代碼)工作,等待結果并監視它們是否失敗。與單線程代碼的結構化編程技術一樣,多線程結構化并發的力量來自兩個想法:通過代碼塊為執行流程定義良好的入口和出口點,以及將操作的生命周期嚴格嵌套在一種反映代碼中嵌套的方式。想學習java技術的同學,不妨報個Java培訓班,有明確清晰的學習路線,理論知識+實戰操作,可以獲得快速提升。
在運行時,結構化并發構建了一個樹形的任務層次結構,同級子任務屬于同一個父任務。樹是單個線程的調用堆棧的并發對應物。
結構化并發是對虛擬線程的一種匹配,它是JDK提供的線程的輕量級實現。計劃在今年 9 月為 Java 19 提供虛擬線程的預覽。許多虛擬線程共享相同的操作系統線程,從而允許大量虛擬線程。這些可以表示行為的并發單元,甚至是 I/O 行為。因此,服務器應用程序可以使用結構化并發來一次處理數千或數百萬個傳入請求。
從本質上講,虛擬線程提供了豐富的線程,結構化并發確保了它們的正確協調。JDK 中的結構化并發庫為服務器端開發人員提供了可維護性和可靠性。
該提案不涉及替換 java.util.concurrent 中的并發構造或為 Java 提供明確的結構化并發 API。該提案也不打算添加在線程之間共享數據流的機制,盡管這可能會在未來得到解決。在當前提案下,現有的線程中斷機制不會被新的線程取消機制取代,但這也可能在未來發生。參加java培訓是入門學習的最佳選擇,有經驗豐富的專業老師面授指導教學,通過理論結合實戰的方式教授java基礎知識,幫助你更好的理解與運用java。