java中的進程與線程

來源:互聯網
上載者:User
/*
進程:是一個正在執行中的程式。
每一個進程執行都有一個執行順序。該順序是一個執行路徑,或者叫一個控制單元。


線程:就是進程中的一個獨立的控制單元。
線程在控制著進程的執行。


一個進程中至少有一個線程。






Java VM  啟動的時候會有一個進程java.exe.


該進程中至少一個線程負責java程式的執行。
而且這個線程啟動並執行代碼存在於main方法中。
該線程稱之為主線程。


擴充:其實更細節說明jvm,jvm啟動不止一個線程,還有負責記憶體回收機制的線程。






1,如何在自訂的代碼中,自訂一個線程呢。


通過對api的尋找,java已經提供了對線程這類事物的描述。就Thread類。


建立線程的第一種方式:繼承Thread類。
步驟:
1,定義類繼承Thread。
2,複寫Thread類中的run方法。
目的:將自訂代碼儲存在run方法。讓線程運行。


3,調用線程的start方法,
該方法兩個作用:啟動線程,調用run方法。






發現運行結果每一次都不同。
因為多個線程都擷取cpu的執行權。cpu執行到誰,誰就運行。
明確一點,在某一個時刻,只能有一個程式在運行。(多核除外)
cpu在做著快速的切換,以達到看上去是同時啟動並執行效果。
我們可以形象把多線程的運行行為在互相搶奪cpu的執行權。


這就是多線程的一個特性:隨機性。誰搶到誰執行,至於執行多長,cpu說的算。






為什麼要覆蓋run方法呢。


Thread類用於描述線程。
該類就定義了一個功能,用於儲存線程要啟動並執行代碼。該儲存功能就是run方法。


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










*/


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










class ThreadDemo 
{
public static void main(String[] args) 
{
//for(int x=0; x<4000; x++)
//System.out.println("Hello World!");


Demo d = new Demo();//建立好一個線程。
//d.start();//開啟線程並執行該線程的run方法。
d.run();//僅僅是對象調用方法。而線程建立了,並沒有運行。



for(int x=0; x<60; x++)
System.out.println("Hello World!--"+x);







}
}


/*
練習:
建立兩個線程,和主線程交替運行。


*/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.