首頁  >  文章  >  Java  >  基於java學習中多執行緒的實作方法

基於java學習中多執行緒的實作方法

高洛峰
高洛峰原創
2017-03-19 11:23:521648瀏覽

這篇文章介紹基於java學習中多執行緒的實作方法

1 繼承Thread類別

#繼承Thread類別的方法儘管被我列為一種多執行緒實作方式,但Thread本質上也是實作了Runnable介面的一個實例,它代表一個執行緒的實例,並且,啟動執行緒的唯一方法就是透過Thread類別的start()實例方法。 start()方法是一個native方法,它將啟動一個新線程,並執行run()方法。這種方式實作多執行緒很簡單,透過自己的類別直接extend Thread,並複寫run()方法,就可以啟動新執行緒並執行自己定義的run()方法。

public class MyThread extends Thread {  
  public void run() {  
   System.out.println("MyThread.run()");  
  }  
} 
 //启动线程
MyThread myThread1 = new MyThread();  
MyThread myThread2 = new MyThread();  
myThread1.start();  
myThread2.start();

2 實作Runnable介面

如果一個類別繼承另一個類,就無法繼承Thread類別(java中不支援多重繼承),這樣就要實作Runnable接口,在實作類別中重寫run()方法,在main方法中實作多執行緒:實例化一個實作類別對象,並初始化Thread類別的對象,把實作類別傳入到Thread的物件裡。事實上,當傳入一個Runnable target參數給Thread後,Thread的run()方法就會呼叫target.run()。

//实现Runnable接口
public class MyThread extends OtherClass implements Runnable {  
  public void run() {  
   System.out.println("MyThread.run()");  
  }  
}  
//复写run()方法
public void run() {  
  if (target != null) {  
   target.run();  
  }  
} 
//实例化对象
MyThread myThread = new MyThread();  
Thread thread = new Thread(myThread);  
thread.start();

3 使用ExecutorService、Callable、Future實作有回傳結果的多執行緒

這部分內容還未學到佔時不作記錄,以後補充


#

以上是基於java學習中多執行緒的實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn