java多線程學習(一)

  1. 相關概念java

    進程:是一次程序的運行。安全

    線程:在進程中獨立運行的子任務。多線程

    使用多線程的優勢:提高系統的運行效率。異步

  2. 如何使用多線程ide

    2.1繼承Thread類測試

    Thread類的結構:public class Thread implements Runnablethis

    繼承Thread類的方式,最大的侷限就是不支持多繼承。線程

    用法:定義線程類,此類繼承自Thread類,而且重寫run方法。而後定義了線程對象後,調用start方法啓動線程。code

public class MyThread extends Thread {
    @Override
   public void run() {
       System.out.println("MyThread");
    }
    
    public static void main(String [] args){
        MyThread myThread = new MyThread();
       myThread.start();
       System.out.println("main");
}
運行結果:
main
MyThread
或
MyThread
main

       啓動了兩個線程:main主線程和MyThread線程,兩個線程誰先運行是隨機的,因此纔出現了以上的兩種運行結果。對象

start方法通知線程規劃器,此線程已經準備就緒,等待調用線程對象的run方法,具備異步執行的效果。如果調用了myThread。run(),則是同步執行,必須先執行完run方法,纔會向下執行。

同時注意,一個線程屢次調用start方法,會拋出IlllegalThreadStateExeception異常。而多個線程對象執行start方法的順序頁不表明線程啓動的順序。

2.2實現Runnable接口

public class MyRunnable implements Runnable {

    @Override

   public void run() {

       System.out.println("MyRunnable");

    }

    

    public static void main(String [] args){

       MyRunnable myRunnable= new MyRunnable();
       Thread thread = new Thread(myRunnable);

       thread.start();

       System.out.println("main");

}

 3.多線程相關方法

currentThread():返回代碼段正在被哪一個線程調用的消息:main Thread-0,Thread-1。

isAlive():判斷當前線程是否處於活動狀態。

sleep():在指定的毫秒數內讓當前正在執行的線程休眠。

getId():獲取線程的惟一標識。

4.中止線程

中止一個線程意味着在線程處理完任務以前停掉正在作的操做。

在Java中有三種方法能夠終止正在運行的線程:

1)使用退出標誌,使線程正常退出

2)stop方法,但該方法是不安全的。

3)使用interrupt方法中斷線程。

4.1中止不了的線程

調用interrupt方法來中止線程,但interrupt方法的使用效果並非像for+break那樣,立刻就終止循環,調用interrupt方法僅僅在當前線程中打了一箇中止的標記,並非真的中止線程。還須要加入一個判斷才能夠完成線程的終止。

如何判斷線程的狀態是否是中止的?

Thread提供了兩個方法:1)this,interrupted():測試 當前線程 是否已經中斷;2)this,isInterrupted():測試線程Thread對象是否已經中斷。

相關文章
相關標籤/搜索