java中什麼是並發?
並發:是指在某個時間段內,多任務交替的執行任務。當有多個執行緒在操作時,把CPU運行時間劃分成若干個時間段,再將時間段分配給各個執行緒執行。在一個時間段的執行緒程式碼運行時,其它執行緒處於掛起狀。
簡單來說,就是cpu在同一時刻執行多個任務。
Java並發則由多執行緒實現的。 【推薦學習:java課程】
在jvm的世界裡,執行緒就像不相干的平行空間,串列在虛擬機器中。 (當然這是比較籠統的說法,線程之間是可以交互的,他們也不一定是串行。)
多線程的存在就是壓榨cpu,提高程序性能,還能減少一定的設計複雜度(用現實的時間思考設計程式)。
為什麼要使用多執行緒?
先整體上:
從電腦底層來說:執行緒可以比喻為是輕量級的進程,是程式執行的最小單元,執行緒間的切換和調度的成本遠小於進程。另外,多核心 CPU 時代意味著多個執行緒可以同時運行,這減少了執行緒上下文切換的開銷。
從當代互聯網發展趨勢來說:現在的系統動不動就要求百萬級甚至千萬級的並發量,而多線程並發編程正式開發高並發系統的基礎,利用好多線程機制可以大大提高系統的並發能力以及效能。
再深入到電腦底層:
單核心時代:在單核心時代多執行緒主要是為了提高 CPU 和 IO 裝置的綜合利用率。
多核心時代:多核心時代主要是為了提高 CPU 的使用率。
使用多執行緒可能會帶來什麼問題?
並發程式設計的目的就是為了能提高程式的執行效率提高程式運行速度,但是並發程式設計並不總是能提高程式運行速度的,而並發程式設計可能會遇到很多問題,例如:記憶體洩漏、上下文切換、死鎖等,還有受限於硬體和軟體和資源閒置問題。
以上是java中什麼是並發?的詳細內容。更多資訊請關注PHP中文網其他相關文章!