創建線程的方法和使用:
一、繼承Thread + run()
啓動:創建子類對象 + 對象.start()
二、實現Runnable + run()
啓動:使用靜態代理
1,創建真實角色
2,創建代理角色 Thread + 引用
3,代理角色.start()
推薦使用接口:
1,避免單繼承侷限性
2,便於共享資源
//線程
public class Web12306 implements Runnable {
private int num = 50; //所有進程公共使用
@Override
public void run() {
//實現runnable接口,此處邏輯爲買票業務,可換成相對應的業務代碼
while(true){
if(num < 0){
System.out.println("The ticket sold over!");
break;
}
System.out.println(Thread.currentThread().getName() + "num:" + num--);
}
}
public static void main(String[] args) {
Web12306 web = new Web12306(); //真實角色
//Thread就是一個代理角色,以下可以視爲3個代理,幫忙搶票
Thread t1 = new Thread(web, "黃牛甲");
Thread t2 = new Thread(web, "黃牛乙");
Thread t3 = new Thread(web, "刷票軟件");
t1.start(); //開啓線程
t2.start(); //開啓線程
t3.start(); //開啓線程
//結束:不同的代理爲同一個人辦事
}
}
文中所說不到之處請諒解,以後想到更好的例子再補充