1. 程式人生 > >Java基礎——多線程

Java基礎——多線程

wid 重新 width thread 傳遞 brush 通過 並且 不用

package test;

//創建線程的第一種方式:繼承java.lang.Thread類
//1.創建一個繼承Thread的子類
class SubThread extends Thread {
	//2.重寫run()方法,方法內實現此子線程要完成的任務
	public void run() {
		for(int i = 0; i < 100; ++i) {
			System.out.println(Thread.currentThread().getName() + ": " + i);
		}
	}
}
public class TestThread {
	public static void main(String[] args) {
		//3.創建一個子類的對象
		SubThread st = new SubThread();
		//4.調用線程的start()方法:啟動此線程;並且調用相應的run()方法
		//一個線程只能執行一次start();
		//不能通過直接調用Thread實現類對象的run()方法去啟動一個線程 st.run();//錯誤的,相當於主線程內啟動的
		st.start();
		
		for(int i = 0; i < 100; ++i) {
			System.out.println(Thread.currentThread().getName() + ": " + i);
		}
	}
	
}

  

package test;
//1.創建一個實現了Runnable接口的類
class SubThread1 implements Runnable{
	//2.實現接口的抽象方法
	public void run() {
		//子線程執行的代碼
		for(int i = 0; i < 50; ++i) {
			System.out.println(Thread.currentThread().getName() + ": " + i);
		}
	}
}

public class TestThread1 {
	public static void main(String[] args) {
		//3.創建一個Runnable接口實現類的對象
		SubThread1 p = new SubThread1();
		//要想啟動多線程,必須調用start()
		//4.將此方法作為形參傳遞給Thread類的構造器中,創建Thread類的對象,此對象即為一個線程
		Thread t1 = new Thread(p);
		//5.調用start()方法,啟動線程並執行run()
		t1.start();
		
		//再創建一個線程
		Thread t2 = new Thread(p); //不用再重新創建p,直接傳入Thread即可
		t2.start();
	}

}

  

技術分享

Java基礎——多線程