程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java多線程完成的兩種方式

Java多線程完成的兩種方式

編輯:關於JAVA

Java多線程完成的兩種方式。本站提示廣大學習愛好者:(Java多線程完成的兩種方式)文章只能為提供參考,不一定能成為您想要的結果。以下是Java多線程完成的兩種方式正文


java多線程完成方式次要有兩種:承繼Thread類、完成Runnable接口

1、承繼Thread類完成多線程

承繼Thread類的辦法雖然被我列為一種多線程完成方式,但Thread實質上也是完成了Runnable接口的一個實例,它代表一個線程的實例,並且,啟動線程的獨一辦法就是經過Thread類的start()實例辦法。start()辦法是一個native辦法,它將啟動一個新線程,並執行run()辦法。這種方式完成多線程很復雜,經過自己的類直接extend Thread,並復寫run()辦法,就可以啟動新線程並執行自己定義的run()辦法。例如:

public class MaYi extends Thread {
  String name;
  public MaYi(String name){
    this.name = name;
  }
  public void run(){
    while(true){
      try {
        Thread.sleep(1000);//等候1秒
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      System.out.println(name+"螞蟻正在下載......");
    }
  }
}

啟動線程:

  public static void main1(String[] args) {
    MaYi m1 = new MaYi("1號");
    m1.start();
    MaYi m2 = new MaYi("2號");
    m2.start();

2、完成Runnable接口方式完成多線程

假如自己的類曾經承繼另一個類,就無法直接extends Thread,此時,必需完成一個Runnable接口,如下:

public class MyThread extends OtherClass implements Runnable { 
  public void run() { 
   System.out.println("MyThread.run()"); 
  } 
}

為了啟動MyThread,需求首先實例化一個Thread,並傳入自己的MyThread實例:

MyThread myThread = new MyThread(); 
Thread thread = new Thread(myThread); 
thread.start();

現實上,當傳入一個Runnable target參數給Thread後,Thread的run()辦法就會調用target.run(),參考JDK源代碼:

public void run() { 
  if (target != null) { 
   target.run(); 
  } 
} 

以上就是本文的全部內容,希望本文的內容對大家的學習或許任務能帶來一定的協助,同時也希望多多支持!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved