線程

大綱:

  1. 線程的定義、開啟、狀態、結束
  2. 線程的類型與優先級:Runnable與Callable
  3. 線程的競爭
  4. 線程的協作

1.1 線程基本流程(定義 開啟 結束)

1)實現Runnable接口->重寫run方法
2)創建一個Ruannable對象
3)創建一個Thread對象thread
4)thread.start()

線程基本流程

1.2 線程的狀態

狀態 改變狀態的代碼
new (新創建) 線程被創建時的狀態
Ruannable(可運行) Thread.start()
Running(執行) Ruannable.run()
Blocked(被阻塞) Thread.sleep() Object.wait()
waiting(等待) wait()
terminated(終止) run方法執行完
線程基本狀態圖
線程狀態圖

1.3 線程的結束

正常結束:執行完run()方法
非正常結束:利用條件結束run()方法——interrupt狀態、標志位

設置標志位

2.1 線程類型

無返回值為實現Runnable接口
有返回值為實現Callable接口

2.2 競爭

對共享的代碼塊添加synchronized關鍵字和使用lock類

競爭

原子操作——不被線程調度中斷

Paste_Image.png

2.3 協作

使用wait()和notify()

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容