1.多執行緒學習內容
1.執行緒簡介
2.執行緒實作
3.執行緒狀態
4.執行緒同步
5.生產消費者
6.高級主題
2.執行緒簡介
多執行緒是指多條并行路徑,多路路徑同時執行
方法間的呼叫:普通方法呼叫是閉合一條路徑
多執行緒使用:開辟了多條路徑
程式、行程和執行緒都是什么?
1.程式:一個軟體,一個app(靜態概念,是代碼指令)
2.行程:在作業系統中運行中的程式(動態概念,一個行程匹配一個程式),例如:用優酷看視頻,就是系統中的一個行程
3.執行緒:一個行程有多個執行緒,例如:用優酷看視頻,同時有影像,有聲音,有彈幕,有字幕
執行緒和行程的區分
1.行程:作為資源分配單位
2.執行緒:調度和執行單位
核心概念
1.執行緒就是獨立的執行路徑
2.在程式運行時,即使沒有自己創建執行緒,后臺也會存在多個執行緒,如:gc執行緒,主執行緒
3.main()為主執行緒,為系統的入口點,用于執行整個程式
4.在一個行程中,如果開辟多個執行緒,執行緒運行由調度器安排調度,調度器是與作業系統緊密相關的,先后順序不能人為改變
5.對于用一份資源操作時,會存在資源搶奪的問題,需要加入并發控制
6.執行緒會帶來額外的開銷,如cpu調度時間,并發控制開銷
7.每個執行緒在自己的作業記憶體互動,加載和儲存主記憶體控制不當會造成資料不一致
4.執行緒的創建
三種方式創建執行緒
1.繼承Thread類
2.實作Runable介面
3.實作Callable介面(并發相關)
根據面向物件思想,多用實作,少用繼承,以便達到多繼承功能
例:

注:
1.執行執行緒時必須呼叫start(),加入到調度器中
2.不一定立即執行,系統安排調度分配執行
3.直接呼叫run(),不是開啟多執行緒,是普通方法呼叫
例:通過執行緒,同時下載三個圖片
1.下載圖片工具類

2.通過執行緒呼叫三張圖片

避免單繼承的局限常用介面來實作多執行緒,還可以方便共享資源
例

注:
對比Thread和Runnable
Thread 啟動執行緒:子類物件.start()
Runnable 啟動執行緒:傳入目標物件+Thread物件.start()
使用Callable介面創建多執行緒

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/143896.html
標籤:Java
上一篇:問大佬們一個問題
下一篇:Java集合
