1五、Java的線程

併發:兩個或多個事件在同一時間段發生,交替執行多線程

並行:兩個或多個事件在同一時刻發生,同時發生併發

進程:一個內存中運行的應用程序,每一個進程都有一個獨立的內存空間,一個應用程序能夠同時運行多個進程,進程也是程序的一次執行過程,是系統運行程序的基本單位,系統運行一個程序便是一個進程的建立、運行到消亡的過程ide

線程:進程中的一個執行單位,負責當前進程中程序的執行,一個進程至少有一個線程,一個進程中是能夠有多個線程,這個應用程序也能夠稱之爲多線程。線程

線程的調度:一、分時調度:全部線程輪流使用CPU的使用權,平均分配每一個線程佔用的CPU的事件對象

                  二、搶佔式調度:優先讓優先級高的線程使用CPU,若是線程的優先級相同,那麼會隨機選擇一個,Java爲搶佔式調度接口

主線程:執行主方法(main)的線程進程

 

建立多線程程序:第一種方式:建立Thread類的子類事件

實現步驟:一、建立一個thread類的子類內存

               二、在thread類的子類中重寫thread類中的run方法,設置線程任務get

               三、建立thread類的子類對象

               四、調用thread類中的start方法,開啓新的線程,執行run方法,併發執行

建立線程的第二種方式:聲明實現runnable接口的類,該類而後實現run方法,而後能夠分配該類的實例,在建立thread時,做爲一個參數來傳遞啓動

實現步驟:一、建立一個runnable接口的實現類

               二、在實現類中重寫runnable接口的run方法,設置線程任務

               三、建立一個runnable接口的實例對象

               四、建立Thread類對象,構造方法中傳遞runnable接口的實現類對象

               五、調用Thread類中的start方法,開啓新的線程執行run方法

使用Runnable接口建立多線程程序的好處:一、避免了單線程的侷限性

                                                          二、加強了程序的擴展性,下降了程序的耦合性

 

Thread類的經常使用方法:獲取線程的名稱:一、使用Thread類中的方法 String getName()

                                                       二、能夠先獲取當前正在執行的線程,使用線程中的方法getName()獲取線程的名稱

                                                             Static Thread currentThread()返回對當前正在執行的線程對象的引用

                                設置線程名稱:一、使用Thread類中的方法setName(String name);

                                                     二、建立一個帶參數的構造方法,參數傳遞線程的名稱, 調用父類的帶參數的方法

                                暫停線程:public static void sleep(long millis),是當前線程以指定毫秒暫停

public class MyThread extends Thread {
    @Override
    public void run(){
        setName("子類線程");
        System.out.println(getName());
        try {
            sleep(2000);
        }
        catch (InterruptedException e){
            e.getMessage();
        }
        System.out.println(Thread.currentThread().getName());

    }
}
public class MyThread2 implements Runnable {
    @Override
    public void run(){
        System.out.println(Thread.currentThread().getName());
    }
}
public class Demo {
    public static void main(String[] args){
        MyThread mt = new MyThread();
        mt.start();
        System.out.println(Thread.currentThread());
        MyThread2 mt2 = new MyThread2();
        Thread t  = new Thread(mt2);
        t.start();

    }
}
相關文章
相關標籤/搜索