1. 程式人生 > >Java 多執行緒實現多個視窗同時賣票

Java 多執行緒實現多個視窗同時賣票

建立執行緒的第二種方式:實現Runable介面

步驟:
1,定義類實現Runnable介面
2,覆蓋Runnable介面中的run方法。
將執行緒要執行的程式碼存放在該run方法中。

3,通過Thread類建立執行緒物件。
4,將Runnable介面的子類物件作為實際引數傳遞給Thread類的建構函式。
為什麼要將Runnable介面的子類物件傳遞給Thread的建構函式。
因為,自定義的run方法所屬的物件是Runnable介面的子類物件。
所以要讓執行緒去指定指定物件的run方法。就必須明確該run方法所屬物件。

5,呼叫Thread類的start方法開啟執行緒並呼叫Runnable介面子類的run方法。

實現方式和繼承方式有什麼區別呢?

實現方式好處:避免了單繼承的侷限性。
在定義執行緒時,建立使用實現方式。

兩種方式區別:
繼承Thread:執行緒程式碼存放Thread子類run方法中。

實現Runnable,執行緒程式碼存在介面的子類的run方法。

class Ticket implements Runnable//extends Thread
{
	private  int tick = 100;
	public void run()
	{
		while(true)
		{
			if(tick>0)
			{
				System.out.println(Thread.currentThread().getName()+"....sale : "+ tick--);
			}
		}
	}
}
class  TicketDemo
{
	public static void main(String[] args) 
	{
		Ticket t = new Ticket();

		Thread t1 = new Thread(t);//建立了一個執行緒;
		Thread t2 = new Thread(t);//建立了一個執行緒;
		Thread t3 = new Thread(t);//建立了一個執行緒;
		Thread t4 = new Thread(t);//建立了一個執行緒;
		t1.start();
		t2.start();
		t3.start();
		t4.start();

		/*
		Ticket t1 = new Ticket();
		//Ticket t2 = new Ticket();
		//Ticket t3 = new Ticket();
		//Ticket t4 = new Ticket();

		t1.start();
		t1.start();
		t1.start();
		t1.start();
		*/
	}
}

————摘自《畢向東25天》