歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java中 實現多線程成的三種方式(繼承,實現,匿名內部類)

Java中 實現多線程成的三種方式(繼承,實現,匿名內部類)

日期:2017/3/1 9:19:07   编辑:Linux編程

Java中 實現多線程成的三種方式(繼承,實現,匿名內部類)

   /**  第一種方式:繼承Thread類

    * 1. 定義一個類,然後讓該類繼承Thread類

    * 2. 重寫run方法

    * 3. 創建定義的這個類的對象

    * 4. 啟動線程

    */

 //繼承Thread類

  public class MyThread extends Thread{

public MyThread() {}

public MyThread(String name) {
super(name);
}

//run方法中封裝的應該是要被線程執行的代碼 ,run方法中代碼的原則,一般存方的都是比較耗時的代碼
public void run (){

for (int i = 0; i < 200; i++) {

System.out.println(Thread.currentThread().getName() + "---" + i);
}
}
}

  //測試方法

  private static void Test() {

   // 創建對象
MyThread mt1 = new MyThread();
MyThread mt2 = new MyThread();


//啟動線程
// public void start()使該線程開始執行;Java 虛擬機調用該線程的 run 方法。
mt1.start();
//mt1.start();// 線程的啟動只能是一次
mt2.start();

  }

------------------------------------------------------------------------------------------------------------

    /**  第二種方式:實現Runnable接口

     *    (1): 創建一個類,讓該類實現Runnable接口

     *    (2): 重寫run方法

     *    (3): 創建該類的對象

     *    (4): 創建Thread類的對象,然後把3中的對象作為參數傳遞給Thread

     *    (5): 啟動線程

     */

  //實現Runnable接口

  public class MyThread2 implements Runnable {

 public MyThread2() {
super();
}

public void run() {

for(int x = 0 ; x < 200 ; x++){

System.out.println(Thread.currentThread().getName() + "---" + x);
}
}
}

  //測試方法

private static void Test2() {

    // 創建MyThread的對象
MyThread2 mt = new MyThread2();
// 創建Thread類的對象,然後把3中的對象作為參數傳遞給Thread
// public Thread(Runnable target)
Thread t1 = new Thread(mt,"張飛");
Thread t2 = new Thread(mt,"關羽");
Thread t3 = new Thread(mt,"劉備");
// 啟動線程
t1.start() ;
t2.start() ;
t3.start() ;
}

------------------------------------------------------------------------------------------------------------

    /**  第三種方式:使用匿名內部類的方式實現

     *    new 類名/接口名() {

     *      方法重寫 ;

     *    } ;

     */

 //測試方法

 //匿名內部類

private static void Test3() {

    new Thread() {
public void run() {
System.out.println("線程執行了。。。。。。。");
}
}.start();
}

Copyright © Linux教程網 All Rights Reserved