2011-11-20 61 views
0

我需要幫助,以站在Java中的線程。Java旨在成爲'Threaded'

線程是程序中執行的線程。 Java虛擬機允許應用程序同時運行多個執行線程。

做什麼我們的意思是,當我們說Java的目標是成爲「樹狀」

+4

谷歌是您的朋友:http://en.wikipedia.org/wiki/Threaded_code – Matteo

+1

upvoted的問題 - 你可以在google的東西並不意味着你不能在這裏提問 – necromancer

+1

@agksmehx同意但是(儘管我沒有投票)我覺得在提問之前應該做更多的研究。澄清是可以的,像「請解釋<普通話題>」這樣的問題並不是很有用。 – Matteo

回答

2

線程是實現語言併發的流行方式。 java有它們。這就是它的意思。

+0

非常感謝你 –

+0

非常歡迎:) – necromancer

3

這意味着,各種操作可以而且應該同時進行。這可以通過使用線程來實現。您可以使用「低級」線程API(線程,可運行)或更高級別的API(計時器,執行程序)。

我希望這足以啓動Google搜索和學習。我建議你從低級線程API開始,以瞭解如何使用線程和同步。然後繼續學習java 1.5中引入的併發包的設施。不要從更高級別的API開始。您需要低級別才能瞭解將任務提交給執行程序後發生的情況。

+0

好吧,先生,我將從低級別的線程開始,但請原諒我哪部分Java控制着哪個線程要運行下一個 –

+0

@WathekMah - 一般來說,它是決定的操作系統(特別是本地線程調度程序)。 –

+0

在Java中創建線程的兩種方法是什麼?何時使用每個? 有兩種方法可以在java中創建線程; •\t實現Runnable接口(一個java.lang.Runnable) •\t通過擴展Thread類(java.lang.Thread中) 當我們使用它們: •\t繼承Thread類是指子類不能擴展任何其他類,而實現Runnable接口 的類具有此選項。 •\t一個類可能只對可運行感興趣,因此,繼承Thread類的全部開銷將是過度的。當我們使用它時,這是真的嗎????????????????????????????????????????????????下面 –

0

做什麼我們的意思是,當我們說Java的目標是成爲「樹狀」

好了,從字面上我們說,因爲調用的運行時環境「線程」是指東西,而不同;見http://en.wikipedia.org/wiki/Threaded_code。 (並注意該頁面需要注意區分「線程」和「多線程」!)

實際上,我們將Java描述爲支持「多線程」編程的語言。你的問題中的引用是對這意味着什麼的簡潔描述。更長遠的描述如下。

程序通常按順序執行語句。例如:

int i = 1; 
    i = i + j; 
    if (i < 10) { 
     ... 
    } 

在上面,語句按順序依次執行。

控制像這樣的語句執行的東西被稱爲「控制線程」或(更普遍的)線程。你可以把它看作一個接一個地執行語句的自動機,而且每次只能執行一個語句。它記錄了局部變量和過程調用的狀態。 (它通常使用一個堆棧和一組專用寄存器來執行此操作......但這是一個實現細節。)

在多線程程序中,可能有很多這樣的自動機,每個自動機都執行不同的語句(使用它自己的堆棧和寄存器)。每個線程都可能能夠與其他線程通信(通過觀察共享對象等),並且可以以各種原因與它們同步。

根據硬件(和操作系統)的不同,這些線程可能都運行在同一個處理器上,或者它們可能(在不同的時間)在不同的處理器上運行。它通常是兩者的組合,並且通常由操作系統來決定哪些可以工作的線程被允許運行。 (這由線程調度器處理。)


從Java的角度來看,多線程編程是在低電平使用Thread類中實現,​​方法和塊,而Object水平waitnotify方法。更高級別的API爲解決常見問題提供了標準構建模塊。