java多線程基礎

Java多線程基礎

@(博客文章)[java]java

1、基礎內容

一、線程的基本概念

(1)一個線程是一個程序內部的順序控制流。多線程

(2)線程和進程
–每一個進程都有獨立的代碼和數據空間(進程上下文),進程切換的開銷大。操作系統

–線程:輕量的進程,同一類線程共享代碼和數據空間,每一個線程有獨立的運行棧和程序計數器(PC),線程切換的開銷小。線程

–多進程:在操做系統中,能同時運行多個任務(程序)。對象

–多線程:在同一應用程序中,有多個順序流同時執行。繼承

二、JAVA線程基礎

JAVA的線程是經過java.lang.Thread類來實現的。接口

VM啓動時會有一個由main()方法所定義的線程。進程

能夠經過建立Thread的實例來建立新的線程。博客

每一個線程都是經過某個特定Thread對象所對應的方法run()來完成其操做的,方法run()稱爲線程體。table

經過調用Thread類的start()方法來啓動一個線程。

三、建立新線程的2種方法

(1)繼承Thread類

(2)實現Runnable接口

建議使用第二種方式,即實現Runnable接口。

2、線程狀態及其變遷

一、Java線程的六種狀態

狀態名稱 說明
NEW 初始狀態,線程被構建,但尚未調用start()方法。
RUNNABLE 運行狀態,Java線程將操做系統中的就緒和運行兩種狀態統一稱爲RANNABLE
BLOCK 阻塞狀態,表示線程阻塞於鎖
WAITING 等待狀態,表示當前線程須要等待其它線程作出一些待定動做(通知或中斷)
TIME_WAITING 超時等待狀態,相似於WAITING,但能夠在指定時間後自行返回
TERMINATED 終止狀態,表示當前線程已經執行完畢

二、線程狀態的變遷

image

相關文章
相關標籤/搜索