天天看點

java多線程執行個體java,java線程,java多線程執行個體

java線程,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()方法,這樣就讓這個類本身也就成了線程類: public class Aclass extendsThread{

…public voidrun(){

….

}

}

Aclass a=newAclass();

a.start();//使用start()方法,線程進入Runnable(可運作狀态),它将向線程排程器注冊這個線程。不會馬上進入運作狀态(Running)

方式二(實作Runnable接口):

public Bclass implementsRunnable{public voidrun(){

}

}

Bclass b=newBclass();

b.start();

補充知識:

public classThread{

…..

…..publicThread(Runnable target) {

init(null, target, "Thread-" + nextThreadNum(), 0);

}privateRunnable target;public voidrun() {if (target != null) {

target.run();

}

}

public synchronized voidstart() {

if (threadStatus != 0 || this !=me)throw newIllegalThreadStateException();

group.add(this);

start0();if(stopBeforeStart) {

stop0(throwableFromStop);

}

}private native voidstart0();

…..

…..

}

java多線程執行個體java,java線程,java多線程執行個體

http://www.dengb.com/Javabc/954949.htmlwww.dengb.comtruehttp://www.dengb.com/Javabc/954949.htmlTechArticlejava線程,java多線程執行個體 線程的概念: 幾乎每種作業系統都支援 程序 的概念 ----程序就是在某種程度上互相隔離的、獨立運作的程式。 程序...