多線程從入門到進階之-多線程入門

一、多線程介紹

在介紹多線程之前我們有必要先了解一下進程這個概念,何爲進程?

進程:正在執行的程序就可以認爲佔用了一個進程。

線程:線程是進程中的一個執行單元,負責當前進程中程序的執行,一個進程中至少有一個線程。一個進程中是可以有多個線程的,這個應用程序也可以稱之爲多線程程序

1.1 進程和線程的區別

1. 線程是程序執行的最小單位,而進程是操作系統分配資源的最小單位

2. 一個進程由一個或多個線程組成,線程是一個進程中代碼的不同執行路線

3. 進程之間相互獨立,但同一進程下的各個線程之間共享程序的內存空間(包括代碼段,數據集,堆等)及一些進程級的資源(如打開文件和信號等),某進程內的線程在其他進程不可見

4. 調度和切換:線程上下文切換比進程上下文切換要快得多

1.2 線程的生命週期

一個線程從出生到死亡,可能涉及到6個狀態

1.New:線程新建但是並未啓動的狀態

2.Runnable:可運行的狀態,等待cpu調度

3.Blocked:線程處於阻塞狀態

4.Waiting:線程等待狀態

5.Timed Waiting:線程處理具有等待時間的等待狀態

6.Terminated:終止線程後的線程狀態。(線程正常執行完畢或者出現異常時候的狀態)

 

二、多線程解決什麼了問題

多線程的引入,可以充分的利用CPU資源

三、多線程用在什麼場景

1.比如有個後臺任務是發郵件,需要給10w用戶發送郵件,可以啓動多個線程來執行

四、創建一個線程

Java 提供了三種創建線程的方法:

  • 通過實現 Runnable 接口;
  • 通過繼承 Thread 類本身;
  • 通過 Callable 和 Future 創建線程。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章