虛擬線程正被提議用于Java,以顯著減少編寫、維護和觀察高吞吐量并發應用程序所需的工作量。想了解有關java更多詳細信息,建議參加Java培訓,通過系統全面的學習,可以快速提升自己。
Oracle提交的JDK增強計劃(JEP)草案要求預覽虛擬線程,作為Java標準版的一部分。虛擬線程將用輕量級用戶模式線程實現來補充代表操作系統線程的Java平臺線程,從而更有效地利用可用硬件,并大幅降低成本。
建議中指出,線程對于表示并發單元(如事務)非常有用。Java當前的線程實現為每個Java線程使用一個操作系統線程,而操作系統線程稀少且成本高昂。現代服務器可以處理比操作系統線程多幾個數量級的并發事務。
編寫高吞吐量服務器軟件的開發人員必須在事務之間共享線程,以有效利用硬件。這是使用線程池完成的,線程池將一個接一個地將線程借給一個事務,以節省為每個事務創建線程的成本。當這還不夠時,開發人員開始將線程返回到池中,甚至在事務的中間,當等待I/O時,這會導致異步的編程風格,需要一個單獨的、不兼容的API集,并且使得故障排除、調試、觀察和分析非常困難。在java培訓中,有系統全面的理論知識和企業級實戰項目,可以讓你真正掌握java知識和技能,更好地進行項目開發。
虛擬線程是不阻塞操作系統線程的java.lang.Thread的用戶模式實現,可實現接近最佳的硬件利用率。虛擬線程允許高水平的并發性和高吞吐量,同時程序與Java平臺和工具的基于線程的設計保持協調。虛擬線程對于平臺線程就像虛擬內存對于物理RAM一樣:一種機制,通過自動映射到底層物理資源來提供豐富的“虛擬”資源。
該提案指出,使用虛擬線程不需要學習新的編程模型。使用Java編寫并發應用程序的開發人員已經知道該模型。然而,由于線程的高成本,開發人員需要改掉因需要而產生的舊習慣,特別是使用線程池,這些線程池只有在它們所共享的資源稀缺或創建成本高昂時才有用。
虛擬線程是由JDK實現的java.lang.Thread的實例,允許許多活動實例在同一進程中共存。虛擬線程的語義與平臺線程相同,只是它們屬于單個線程組,不能列舉。如果你正在考慮如何快速學習java,那么參加java培訓掌握更全面的知識和技能將是一個很好的開始。