并發(fā)編程簡介
1. 前言
大家好,本節(jié)我們來一起學習 Java 并發(fā)編程的核心原理。
作為本專題的第一個小節(jié),我們先來了解下什么是并發(fā)編程,以及學習并發(fā)編程的必要性,及學習過程應該注意的事項。
下面,我們先了解一下 Java 并發(fā)編程。
2. 什么是并發(fā)編程?
所謂并發(fā)編程是指在一臺處理器上 “同時” 處理多個任務。并發(fā)是在同一實體上的多個事件。多個事件在同一時間間隔發(fā)生。
并發(fā)編程,從程序設計的角度來說,是希望通過某些機制讓計算機可以在一個時間段內(nèi),執(zhí)行多個任務。從計算機 CPU 硬件層面來說,是一個或多個物理 CPU 在多個程序之間多路復用,提高對計算機資源的利用率。從調(diào)度算法角度來說,當任務數(shù)量多于 CPU 的核數(shù)時,并發(fā)編程能夠通過操作系統(tǒng)的任務調(diào)度算法,實現(xiàn)多個任務一起執(zhí)行。
3. 并發(fā)編程的重要性
對于一個 Java 程序員而言,能否熟練掌握并發(fā)編程是判斷他優(yōu)秀與否的重要標準之一。因為并發(fā)編程是 Java 語言中最為晦澀的知識點,它涉及操作系統(tǒng)、內(nèi)存、CPU、編程語言等多方面的基礎能力,更為考驗一個程序員的內(nèi)功。
并發(fā)編程在開發(fā)語言中占據(jù)著不可替代的位置。
4. 并發(fā)編程的特性
并發(fā)編程有三大特性:
-
原子性;
-
可見性;
-
有序性。
Tips: 后續(xù)的課程知識中,會對這些特性進行詳細的詳解。了解并掌握并發(fā)編程的三大特性,非常重要。
5. 為什么學習并發(fā)編程?
可以這樣來說,在目前開發(fā)市場對于程序員的硬性要求中,并發(fā)編程占據(jù)了重要的位置,不懂并發(fā)編程的從業(yè)者不是一名合格的軟件工程師。
尤其是大數(shù)據(jù)時代的來臨,高并發(fā)更成為了家常便飯,工作中,你總是繞不開并發(fā)編程的任務,比如說,你想寫個程序,一邊從文件中讀取數(shù)據(jù),一邊還要做實時計算… 所以,想成為一名資深的 Java 后端工程師,并發(fā)編程必須要牢牢把握。
6. 本套課程 JDK 版本
本套課程使用的 JDK 1.8 的版本。在進行課程代碼實踐的過程中,推薦學習者至少使用 JDK 1.8 及以上版本。
Tips:如果有學習者使用 JDK 1.8 以下的版本,那至少要保證 JDK 版本高于 1.5。因為我們課程的 Lock 接口部分,是 JDK 1.5 版本之后的新特性,所以要至少保證JDK 版本高于 1.5。
7. 學習基礎
在開始學習并發(fā)編程之前,學習者需要掌握 JavaSE 的知識,這是學習并發(fā)編程的語言基礎,也是 Java 程序員必備的基本功。