中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中的并發和并行是什么

發布時間:2020-06-26 17:25:33 來源:億速云 閱讀:359 作者:Leah 欄目:編程語言

java中的并發和并行是什么?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

并發與并行

并發:是指在某個時間段內,多任務交替的執行任務。當有多個線程在操作時,把CPU運行時間劃分成若干個時間段,再將時間段分配給各個線程執行。 在一個時間段的線程代碼運行時,其它線程處于掛起狀。

并行:是指同一時刻同時處理多任務的能力。當有多個線程在操作時,cpu同時處理這些線程請求的能力。

所以在并發環境下,程序的封閉性被打破,出現以下特點:

1、并發程序之間有相互制約的關系。直接制約體現為一個程序需要另一個程序的計算結果;間接體現為多個程序競爭共享資源,如處理器、緩沖區等。

2、并發程序的執行過程是斷斷續續的。程序需要記憶現場指令及執行點。

3、當并發數設置合理并且CPU擁有足夠的處理能力時,并發會提高程序的運行效率。

在并發環境中,當一個對象可以被多個線程訪問到時,會造成該對象可以被任何訪問到的線程進行修改,從而出現數據不一致的情況。所以提出線程安全的概念。

線程基本概念介紹

線程與進程

進程:每個進程都有獨立的代碼和數據空間(進程上下文),進程間的切換會有較大的開銷,一個進程包含1--n個線程。(進程是資源分配的最小單位) 。簡單講進程就是在某種程度上相互隔離的、獨立運行的程序。

線程:同一類線程共享代碼和數據空間,每個線程有獨立的運行棧和程序計數器(PC),線程切換開銷小。(線程是cpu調度的最小單位)

線程和進程一樣分為五個階段:創建、就緒、運行、阻塞、終止。

java中的并發和并行是什么

1、創建: 新創建了一個線程對象,還未調用start()方法。 如 Thread thread = new Thread();

2、就緒: 線程對象創建后,其他線程(比如main線程)調用了該對象的start()方法。該狀態的線程位于可運行線程池中,等待被線程調度選中 獲取cpu 的使用權 。

3、運行: 運行狀態(runnable)的線程獲得了cpu 時間片(timeslice) ,執行程序代碼。

4、阻塞(Blocked):線程被阻塞了,“阻塞狀態”與“等待狀態”的區別是:“阻塞狀態”在等待著獲取到一個排它鎖,這個事件將在另外一個線程放棄這個鎖的時候發生;而“等待狀態”則是在等待一段時間,或者喚醒動作的發生。在程序等待進入同步區域(synchronized)的時候,線程將進入這種狀態。

(一). 等待阻塞: 運行(running) 的線程執行o.wait()方法,JVM會把該線程放入等待隊列(waitting queue)中。

(二). 同步阻塞: 運行(running) 的線程在獲取對象的同步鎖時,若該同步鎖被別的線程占用,則JVM會把該線程放入鎖池(lock pool)中。

(三). 其他阻塞: 運行(running) 的線程執行Thread.sleep(long ms)或t.join()方法,或者發出了I/O請求時,JVM會把該線程置為阻塞狀態。當sleep()狀態超時、join()等待線程終止或者超時、或者I/O處理完畢時,線程重新轉入 可運行(runnable) 狀態。

5、等待: 進入該狀態的線程需要等待其他線程做出一些特定動作(通知或中斷)。

6、阻塞:當一個線程試圖獲取一個內部的對象鎖(非java.util.concurrent庫中的鎖),而該鎖被其他線程持有,則該線程進入阻塞狀態。

7、等待:當一個線程等待另一個線程通知調度器一個條件時,該線程進入等待狀態。例如調用:Object.wait()、Thread.join()以及等待Lock或Condition。

8、超時等待(TIMED_WAITING):該狀態不同于WAITING,它可以在指定的時間后自行返回。

9、終止(TERMINATED):表示該線程已經執行完畢。

關于java中的并發和并行是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铜山县| 满城县| 惠安县| 汶川县| 高安市| 教育| 黔西县| 兖州市| 汝南县| 屏东市| 竹山县| 青海省| 宝清县| 宜昌市| 固始县| 罗平县| 宜兰市| 平乡县| 壶关县| 藁城市| 白山市| 廊坊市| 如皋市| 汉沽区| 探索| 班玛县| 南宁市| 望城县| 永春县| 瓦房店市| 大庆市| 轮台县| 利川市| 屏边| 冷水江市| 政和县| 湄潭县| 玉环县| 宜城市| 道孚县| 洛浦县|