1. 程式人生 > 其它 >樹狀陣列 從入門到不會(超詳細)

樹狀陣列 從入門到不會(超詳細)

java 多執行緒的常用API和建立方法

Thread類

表示執行緒,也叫作執行緒類,建立該類的物件,就是建立執行緒物件(或者說建立執行緒)

要會使用Thread類的構造方法和常用方法

構造方法

public Thread()

public Thread(String name)

public Thread(Runnable target)

public Thread(Runnable target,String name)

常用方法

Public String getName()

Public void start()

Public void run()

Public static void sleep(long millis)

Public static Thread currentThread()

目前只分享建立執行緒的2種方式:

1通過繼承Thread類的方式

2通過實現Runnable介面的方法

(Runnable 介面:執行緒任務介面)

建立執行緒

方法一:繼承Thread類

1 建立子類繼承Thread類

2 在子類中重寫run方法,

把執行緒需要執行的程式碼放在run方法中

3 建立子類執行緒物件

4 呼叫start()方法啟動執行緒,執行任務程式碼


public class test {
public static void main(String[] args) {
MyThread mt1 = new MyThread();
mt1.start();

for (int j = 0; j < 100; j++) {
System.out.println("主執行緒 第"+(j+1)+"次迴圈");
}
}
}

public class MyThread extends Thread {
    @Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("子執行緒第"+(i+1)+"次迴圈");
}
}
}


Java程式至少有2條執行緒,

一條為主執行緒,一條為垃圾回收執行緒

建立執行緒第2種方式:通過實現的方式

1 建立實現類實現Runnable介面

2 在實現類中重寫run方法,把執行緒需要執行的任務程式碼放入run方法中

3 建立實現類物件

4 建立Thread執行緒物件,並傳入Runnable介面的實現類物件

5 呼叫start()方法啟動執行緒,執行任務


public class MyRunnable implements Runnable {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("子執行緒 第"+(i+1)+"次迴圈");
}
}
}

public class test {
public static void main(String[] args) {
MyRunnable mr = new MyRunnable();
Thread t1 = new Thread(mr);
t1.start();

for (int j = 0; j < 100; j++) {
System.out.println("主執行緒 第"+(j+1)+"次迴圈");
}
}
}


建立執行緒第3種方法:匿名內部類(由第二種方法演變)

1 建立Runnable的匿名內部類

2 在匿名類內部重寫run()方法

3 建立Thread執行緒物件,並傳入Runnable匿名內部類

4 呼叫start()方法


public class test {
public static void main(String[] args) {
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("子執行緒 第"+(i+1)+"次迴圈");
}
}
});
t1.start();

for (int j = 0; j < 100; j++) {
System.out.println("子執行緒 第"+(j+1)+"次迴圈");
}
}
}


備註:

1 主執行緒一定會等子執行緒全部執行完畢才會結束主執行緒

2 子執行緒任務程式碼執行完畢,執行緒就會銷燬