a、多執行緒

鲤斌發表於2024-03-14

程序 執行緒

程序(Process):  

程序是計算機中正在執行的程式的例項。在Java中,每個Java應用程式都執行在其自己的Java虛擬機器(JVM)例項中,每個JVM例項都是一個程序。程序擁有自己的記憶體空間、資源和執行環境,它們彼此獨立,相互之間不會干擾。

執行緒(Thread):

執行緒是程序內的執行單元,一個程序可以包含多個執行緒。執行緒共享同一程序的記憶體空間和資源,但每個執行緒擁有自己的執行路徑。在Java中,可以透過建立Thread類的例項或實現Runnable介面來建立執行緒。執行緒使得程式可以併發執行多個任務,提高了程式的效率和響應性;

執行緒建立的三種方式:

繼承Thread類:

可以建立一個繼承自Thread類的子類,並重寫其run()方法來定義執行緒的執行邏輯。然後透過建立該子類的例項並呼叫start()方法來啟動執行緒。

class MyThread extends Thread {
    public void run() {
        // 執行緒的執行邏輯
    }
}
public class Main {
    public static void main(String[] args) {
        MyThread thread = new MyThread(); //建立執行緒物件
        thread.start(); //呼叫start方法開啟執行緒
    }
}
實現Runnable介面(推薦使用):

可以建立一個實現了Runnable介面的類,並實現其run()方法來定義執行緒的執行邏輯。然後透過建立該類的例項,並將其作為引數傳遞給Thread類的構造方法來建立執行緒。 方便同一個物件被多個執行緒使用;

class MyRunnable implements Runnable {  
    public void run() {
        // 執行緒的執行邏輯
    }
}
public class Main {
    public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable(); //建立runnbale介面的實現類物件
        Thread thread = new Thread(myRunnable); //建立執行緒物件,透過執行緒物件來開啟我們的執行緒,代理
        thread.start(); //呼叫執行緒
    }
}
實現Callable介面(瞭解):

使用Callable介面建立執行緒需要配合ExecutorService來實現執行緒的管理和執行。

public class MyCallable implements Callable<String> {
    public String call() {
        return "Hello, Callable!";
    }
}
public class Main {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        //建立執行服務:
        ExecutorService ser = Executors.newFixedThreadPool( 3); //3個執行緒
        //提交執行
        Future<String> r1  =ser.submit(new  MyCallable());
        //獲取結果
       String aa = r1.get();
        System.out.println(aa);
        //關閉服務
        ser.shutdownNow();
    }
}

相關文章