天天看點

線程的實作方式——多線程技術二

本文主要介紹關于線程如何實作的方式,主要介紹的是在jdk1.5之前的兩種方式:分别是繼承Thread類與實作Runnable接口。

繼承Thread類:

第一種:

new Thread(){}.start();

這表示調用Thread子類對象的run方法,new Thread(){}表示一個Thread的匿名子類的執行個體對象,子類加上run方法後的代碼如下:

new Thread(){

   public void run(){

   }

}.start();

第二種:

new Thread(newRunnable(){}).start();

這表示調用Thread對象接受的Runnable對象的run方法,new Runnable(){}表示一個Runnable的匿名子類的執行個體對象,runnable的子類加上run方法後的代碼如下:

new Thread(newRunnable(){

               public void run(){

               }    

        }

   ).start();

具體代碼測試實作:

建立兩個線程,一個繼承Thread類。一個實作Runnable。

package MultiThreed;

public class NumberThread extends Thread{

	public NumberThread(String string) {
		super(string);
	}
	
	@Override
	public void run() {
		for (int i = 1; i < 5000; i++) {
			System.out.println(this.getName()+":"+i);
		}
		
		
	}
}
           
package MultiThreed;


public class NumberThread2 implements Runnable{


	private	String name;
	public NumberThread2(String name) {
		this.name=name;
				
	}
	
	@Override
	public void run() {
		for (int i = 1; i < 5000; i++) {
			System.out.println(this.name+":"+i);
		}
		
		
	}
}
           

主方法:

package MultiThreed;

public class Main {

	public static void main(String[] args) {
		NumberThread t1=new NumberThread("T1");
		NumberThread2 t2=new NumberThread2("T2");
		t1.start();
		new Thread(t2).start();//還是需要調用Thread的start方法啟動
		
	}
}
           

繼續閱讀