JAVA版,線程初級入門案例一:繼承Thread類創建線程

進程:計算機需要執行多個程序,所以需要分成多個小任務,每一個就是一個進程
線程:進程可以分爲多個可執行的小任務,每一個就是一個線程

計算機上的任務是由CPU來執行的,在某個時間點,某個核中只能執行一個進程。
而進程是由線程組成,所以同一時刻CPU只能執行某個線程

多線程:
線程的工作職責分爲和CPU交互或者和硬件交互,當線程和硬件交互時,CPU處於空閒狀態,
多線程則可以提高CPU的利用率(理論上最好狀態是100%)

創建多線程方式:
繼承Thread類

線程競爭圖:
在這裏插入圖片描述

//main方法是主線程,
    public static void main(String[] args) {
        //不需要創建主線程,JAVA虛擬機會自動創建
        //創建支線程
        TDemo t1=new TDemo("1111");
        TDemo t2=new TDemo("2222");
        //使用父類Thread中的start()方法,開啓線程
        t1.start();
        t2.start();
        //然後再運行一下主線程,看運行效果
        for (int i = 0; i < 20; i++) {
            System.out.println("這是主線程"+i);
            //主線程也可以休眠,直接使用Thread類名,調用sleep()方法,可以讓主線程休眠
            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    }
}
//代表線程的類--->描述線程的任務信息
class TDemo extends Thread{
    //用來記錄線程名字,方便看到運行效果
    private String name;

    public TDemo(String name){
        super();
        this.name=name;
    }
    //一定要重寫的方法 run(),線程的具體任務信息是在方法裏面進行描述
    @Override
    public void run() {
        for (int i = 0; i < 20; i++) {
            System.out.println(name+"i="+i);
            //爲了看到演示效果,線程休眠
            try {
                // 線程休眠可能會不能再次激活,所以必須自己捕獲
                Thread.sleep(10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

運行結果:
在這裏插入圖片描述
但是這種方式並不靈活,JAVA中是單繼承,如果當前類繼承了Thread類,就不能繼承其他的類,所以使用繼承非常的不靈活
下一篇,將使用實現Runnable接口,實現線程
JAVA版線程基礎案例二:實現Runnable完成線程
提升案例,線程不安全的賣票程序(實際上把輸出改成了搶糖)
JAVA版本,線程三:線程實現賣票程序

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