加深對線程以及Tread代理模式的理解

創建線程的方法和使用:

一、繼承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(); //開啓線程
        
        //結束:不同的代理爲同一個人辦事
    }
}


文中所說不到之處請諒解,以後想到更好的例子再補充


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章