天天看點

java線程

幾乎每種作業系統都支援程序的概念 ----程序就是在某種程度上互相隔離的、獨立運作的程式。
程序---程式之間輪詢利用CPU時間。 程序是CPU任務。
線程---程式内部,輪詢利用程式得到的執行時間。線程是某個程式的任務。
多程序(Multi-Thread)擴充了多程序(Multi-Process)操作的概念,将任務的劃分下降到了程式級别,使得各個程式似乎可以在同一時間内執行多個任務。
每個任務稱為一個線程,能夠同時運作多個線程的程式稱為多線程程式。
多程序和多線程作為資源排程的兩種方式,已經存在了很久了。但是将線程顯示地作為程式語言的特征,而不是單純當底層作業系統的排程,Java是第一個主流的程式設計語言

其實,每個Java應用程式都至少有一個線程---主線程。當一個Java應用程式啟東時,JVM會建立主線程,并在該線程中調用程式的main()方法。

多程序和多線程有什麼差別?對于程序來說,每個程序都有自己的一組完整的變量,而線程則共享相同的資料。
我們知道:計算機程式得以執行的三個要素是:CPU、程式代碼和可存取的資料。在Java語言中,多線程的機制是通過虛拟CPU來實作的。

可以形象的了解為,在一個Java程式内部虛拟了多台計算機,每台計算機對應一個線程,有自己的CPU,可以擷取所需的代碼和資料,是以能獨立執行任務,

互相間還可以公用代碼和資料。Java的線程是通過java.lang.Thread類來實作的,它内部實作了虛拟CPU的功能,能夠接收和處理傳遞給它的代碼和資料,并提供了

獨立的運作控制功能。

JVM還通常會建立一些其他的線程,不過,這些線程對我們而言通常是不可見的。例如,用于自動垃圾收集的線程、對象終止或者其他的JVM處理任務相關的線程。
方式一(繼承Thread類): 将一個類繼承Thread,然後覆寫Thread中的run()方法,這樣就讓這個類本身也就成了線程類:
方式二(實作Runnable接口):

  補充知識:

java線程

我是一個線程:http://kb.cnblogs.com/page/542462/

開始做,堅持做,重複做