Java多線程概述,java多線程

來源:互聯網
上載者:User

Java多線程概述,java多線程



/*多線程
1.首先說進程,進程---就是進行中的程式
    每一個進程都有一個執行程式。該順序是一個執行路徑,或者叫一個控制單元

2.線程:就是進程中的一個獨立的進程單元
        線程在控制著進程的執行
        一個進程中至少有一個進程

        Java VM(虛擬機器) 啟動的時候會有一個進程  java.exe
        
        該進程中至少有一個線程負責java程式的執行
        而且這個線程啟動並執行代碼存在於main方法中
        該線程稱之為主線程
        
        拓展:其實更細節說明JVM,jvm啟動都不止一個線程,還有負責記憶體回收機制的線程

3.如何在自訂的代碼中自訂一個線程呢?
通過對api的尋找,java已經提供了對線程這類事物的描述,就Thread類

建立線程的第一種方式,繼承Thread類。

具體步驟:
1.定義類繼承Thread。
2.複寫Thread類中的run方法。
  目的:將自訂代碼儲存在run方法,讓線程運行
3.調用線程的start方法
該方法有兩個作用:1.啟動線程  2.調用run方法

*/
/*
常識瞭解
1.CPU在無時不刻地切換,實際切換的是進程中的線程
2.速度很快,快到感覺不到
3.發現運行結果每一次都不同。因為每個線程都在擷取cpu的執行權,cpu執行到誰,誰就運行。
4.明確一點,在某一時刻,只能有一個程式在執行(多核除外)
5.cpu在做著快速的切換,已達到看上去是同時啟動並執行效果
6.我們可以形象把多線程的運行形容為在互相搶奪cpu的執行權,體現了多線程的特性:隨機性(誰搶到誰執行,執行多長時間,cpu說了算)
*/


/*為什麼要覆蓋run方法呢?
Thread用於描述線程
該類就定義了一個功能,用於儲存線程要啟動並執行代碼。該儲存功能就是run方法

也就是說Thread類中的run方法,用於儲存線程要啟動並執行代碼

*/

class Demo extends Thread
{
    public void run()
    {
        for(int i=0;i<60;i++)
        {
            System.out.println("Demo run"+i);
        }
    }
}

class ThreadDemo
{
    public static void main(String args[])   /*主線程*/
    {
        Demo d=new Demo(); /*建立一個對象,就是建立一個線程*/  /*主線程走到這,就有一個新的控制單元被建立*/
        d.start();            /*開啟線程,並執行該線程的run方法。d.run()僅僅是對象調用了方法,而線程建立了,並沒有運行*/
        for(int i=0;i<60;i++)
        {
            System.out.println("aaa"+i);
        }
    }
}





















聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.