java 多執行緒 快速入門
------------恢復內容開始------------
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方法
多執行緒的執行狀態
------------恢復內容結束------------
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方法
多執行緒的執行狀態
&n