歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java創建線程的三種方式

1)繼承Thread,重寫其的run方法

2)實現Runnable接口

代碼如下:

  1. package com.study;  
  2. /** 
  3.  *  
  4.  * @ClassName: ThreadTest 
  5.  * @Description: 創建線程的兩種方式 
  6.  * @author 我夕 
  7.  */  
  8. public class ThreadTest {  
  9.       
  10.     public static void main(String[] args) {  
  11.           
  12.         System.out.println("當前線程的名字:"+Thread.currentThread().getName()+";線程ID:"+Thread.currentThread().getId());  
  13.           
  14.         ThreadOne one=new ThreadOne();  
  15.         one.setName("ThreadOne");//為了便於調試,建議創建時給線程設個名稱  
  16.         one.start();  
  17.   
  18.         Thread two2=new Thread(new ThreadTwo());  
  19.         two2.setName("ThreadTwo");  
  20.         two2.start();  
  21.           
  22.     }  
  23.       
  24.     //繼承Thread,覆蓋父類run方法  
  25.     public static class ThreadOne extends Thread{  
  26.         @Override  
  27.         public void run() {  
  28.             // TODO Auto-generated method stub  
  29.             super.run();  
  30.             //do xx  
  31.             System.out.println("當前線程的名字:"+Thread.currentThread().getName()+";線程ID:"+Thread.currentThread().getId());  
  32.         }  
  33.     }  
  34.       
  35.       
  36.     //實現Runnable接口  
  37.     public static class ThreadTwo implements Runnable{  
  38.   
  39.         @Override  
  40.         public void run() {  
  41.             // TODO Auto-generated method stub  
  42.             //do xx  
  43.             System.out.println("當前線程的名字:"+Thread.currentThread().getName()+";線程ID:"+Thread.currentThread().getId());  
  44.         }  
  45.           
  46.     }  
  47. }  

總結:

創建線程的傳統方式就上面兩種(這裡不考慮jdk1.5種線程並發庫裡的創建方式,後續會寫到),但寫的方式卻是多種多樣,希望初學者不要被其搞混掉

兩種方式都可以創建線程,第一種方式創建比較簡單,但由於java是單繼承的緣故,創建出的Thread子類就無法在繼承其他類;實現Runnable接口的方式可以將cpu、代碼和數據分開,同時創建出的線程可以共享處理同一份資源。

記住:Thread類本身也實現了Runnable接口,因此Thread類及其子類的對象也可以作為target傳遞給新的線程對象。

Copyright © Linux教程網 All Rights Reserved