------------恢復內容開始------------java
java 多線程 快速入門api
1. 進程和線程多線程
什麼是進程?spa
進程是正在運行的程序它是線程的集合操作系統
進程中必定有一個主線程線程
一個操做系統能夠有多個線程3d
什麼是線程?
對象
線程就是獨立的運行一條執行路徑
blog
一個獨立的執行單元 , 一個執行流程繼承
爲何要使用多線程?
多線程提升程序效率 , 使用多線程 , 每一個線程互補影響
2.建立線程的方式有哪些
1.使用繼承 Thread類方式
以下示例
結果
1.繼承 Thread 類
class CreateThread_1 extends Thread { /*......*/}
2.重寫方法 run()
public void run() {/*......*/}
3.建立對象
CreateThread_1 t1 = new CreateThread_1 ()
4.啓動線程
ti.start()
注意 : 若是 是直接 調用 run() 方法的話 它仍是 單線程 會 按順序向下執行
直接調用 run() 方法 的話 也就是一個普通方法
結果會是
2.使用實現 Runnable 接口
以下示例
結果
1.實現Runnable接口
class CreateThread_2 implements Runnable {/*.....*/}
2.實現 run() 方法
public void run() {/*.....*/}
2.啓動線程
// 建立對象
CreateThread_2 t1 = new CreateThread_2();
Thread thread = new Thread(t1);
// 調用 start() 方法 啓動線程
thread.start();
注意 : Runnable 接口 沒有 start()方法
因此咱們要用到 Thread 類 的 start() 方法
3.Callable 內部匿名建立
以下示例
匿名 Thread 類
示例 2
結果
匿名內部 建立多線程 比 Thread 類 和 Runnable 接口 更 靈活
多線程經常使用 api 方法
start() 啓動線程
getId() 獲取當前線程 id 編號 從0 開始
getName() 獲取當前線程名稱
例如:
sleep(1000) 休眠 1 秒
stop() 中止線程
currentThread() 獲取當前線程對象
(Thread.currentThread().getId() 獲取當前線程 id)
Thread(String name)分配一個新的 Thread 對象 而且定義名稱
例如
多線程有幾種狀態
1.新建
new Thread();
2.準備
調用 start () 方法時 不會立刻執行
3.運行
Cpu 開始執行 run 時
4.休眠
調用sleep()方法
或者 wait()方法
5.中止(死亡)
Run 方發執行完畢或者調用 stop()方法
流程圖
join ()方法
做用 : 先讓別的線程先執行 ( 在當前線程 , 當前線程 讓出 )
示例: 讓子線程先執行
結果
總結 :
進程是正在運行的程序,它是線程的集合
線程就是在獨立運行一條執行路徑
多線程 就是爲了提升程序的效率
進程是線程集合
線程是進程一條執行路徑
Thread 類建立線程
Runnable 接口建立線程
匿名內部建立線程
多線程的經常使用api方法
多線程的運行狀態
------------恢復內容結束------------
java 多線程 快速入門
1. 進程和線程
什麼是進程?
進程是正在運行的程序它是線程的集合
進程中必定有一個主線程
一個操做系統能夠有多個線程
什麼是線程?
線程就是獨立的運行一條執行路徑
一個獨立的執行單元 , 一個執行流程
爲何要使用多線程?
多線程提升程序效率 , 使用多線程 , 每一個線程互補影響
2.建立線程的方式有哪些
1.使用繼承 Thread類方式
以下示例
結果
1.繼承 Thread 類
class CreateThread_1 extends Thread { /*......*/}
2.重寫方法 run()
public void run() {/*......*/}
3.建立對象
CreateThread_1 t1 = new CreateThread_1 ()
4.啓動線程
ti.start()
注意 : 若是 是直接 調用 run() 方法的話 它仍是 單線程 會 按順序向下執行
直接調用 run() 方法 的話 也就是一個普通方法
結果會是
2.使用實現 Runnable 接口
以下示例
結果
1.實現Runnable接口
class CreateThread_2 implements Runnable {/*.....*/}
2.實現 run() 方法
public void run() {/*.....*/}
2.啓動線程
// 建立對象
CreateThread_2 t1 = new CreateThread_2();
Thread thread = new Thread(t1);
// 調用 start() 方法 啓動線程
thread.start();
注意 : Runnable 接口 沒有 start()方法
因此咱們要用到 Thread 類 的 start() 方法
3.Callable 內部匿名建立
以下示例
匿名 Thread 類
示例 2
結果
匿名內部 建立多線程 比 Thread 類 和 Runnable 接口 更 靈活
多線程經常使用 api 方法
start() 啓動線程
getId() 獲取當前線程 id 編號 從0 開始
getName() 獲取當前線程名稱
例如:
sleep(1000) 休眠 1 秒
stop() 中止線程
currentThread() 獲取當前線程對象
(Thread.currentThread().getId() 獲取當前線程 id)
Thread(String name)分配一個新的 Thread 對象 而且定義名稱
例如
多線程有幾種狀態
1.新建
new Thread();
2.準備
調用 start () 方法時 不會立刻執行
3.運行
Cpu 開始執行 run 時
4.休眠
調用sleep()方法
或者 wait()方法
5.中止(死亡)
Run 方發執行完畢或者調用 stop()方法
流程圖
join ()方法
做用 : 先讓別的線程先執行 ( 在當前線程 , 當前線程 讓出 )
示例: 讓子線程先執行
結果
總結 :
進程是正在運行的程序,它是線程的集合
線程就是在獨立運行一條執行路徑
多線程 就是爲了提升程序的效率
進程是線程集合
線程是進程一條執行路徑
Thread 類建立線程
Runnable 接口建立線程
匿名內部建立線程
多線程的經常使用api方法
多線程的運行狀態