2020-10-24
Java 執行緒的兩種常用實現方式
第一種方式
類繼承 java.lang.Thread 類,覆蓋 run方法
//建立執行緒物件
MyThread t1 = new MyThread();
//開啟執行緒:
t1.start() ; // JVM預設執行 run方法
class MyThread extends Thread{
@Override
public void run() {
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+"好好學習"+i);
}
}
}
第二種方式
類實現 java.lang Runnable介面,同時實現run方法
// 建立執行緒的目標物件
Mytarget mt = new MyTarget();
//建立執行緒物件:
Thread t2 = new Thread(mt); // 將目標物件作為引數進行傳遞
//開啟執行緒
t2.start(); // JVM預設呼叫run方法
class MyThread2 implements Runnable{
@Override
public void run() {
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+"天天向上"+i);
}
}
}
–我們常用的執行緒為main執行緒
public class demo3 {
public static void main(String[] args) {
MyThread t =new MyThread();
t.start();
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+"天天向上"+i);
}
}
}
class MyThread extends Thread{
@Override
public void run() {
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+"好好學習"+i);
}
}
}
在這段程式碼中,我們在主執行緒main和執行緒Thread遍歷迴圈列印好好學習天天向上,發現列印結果不是交錯的,說明執行緒是競爭的