1. 程式人生 > >java多執行緒的幾種實現方法

java多執行緒的幾種實現方法

          方法一:繼承Thread類,覆蓋方法run(),

public class MyThread extends Thread {
int count= 1, number;
public MyThread(int num) {
number = num;
System.out.println("建立執行緒 " + number);
}
public void run() {
while(true) {
System.out.println("執行緒 " + number + ":計數 " + count);
if(++count== 6) return;
}
}
public static void main(String args[]) {
for(int i = 0; i < 5; i++) new MyThread(i+1).start();
}
}


方法二:實現Runnable介面

但是 Runnable 介面並沒有任何對執行緒的支援,我們還必須建立 Thread 類的例項,這一點通過 Thread 類的建構函式public Thread(Runnable target);來實現。
public class MyThread implements Runnable {
int count= 1, number;
public MyThread(int num) {
number = num;
System.out.println("建立執行緒 " + number);
}
public void run() {
while(true) {
System.out.println("執行緒 " + number + ":計數 " + count);
if(++count== 6) return;
} 
}
public static void main(String args[]) {
for(int i = 0; i < 5; i++) new Thread(new MyThread(i+1)).start();
}
}


也可以設定讓當前執行緒休眠,用Thread裡的sleep方法

如:

public static void main(String[] args) {
		DoSomething dothing = new DoSomething();
		Thread t1 = new Thread(dothing);
		t1.start();                                                 //這裡就是樓主提的問題,啟動執行緒,執行上面寫的run()方法
		for (int i = 0; i < 5; i++) {                          //主執行緒             
			System.out.println("主執行緒do something");
			try {
		                         Thread.sleep(1000);     //休眠1秒
			} catch (Exception e) {}
		}
	}

直接啟動run()與用start()啟動run方法的區別