Java網絡程序設計 課件 單元8-01 多線程_第1頁
Java網絡程序設計 課件 單元8-01 多線程_第2頁
Java網絡程序設計 課件 單元8-01 多線程_第3頁
Java網絡程序設計 課件 單元8-01 多線程_第4頁
Java網絡程序設計 課件 單元8-01 多線程_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

線程應用單元八多線程創建和使用線程線程控制目錄CONTENTS123線程死鎖和協作目錄CONTENTS5共享數據48.1.1線程引入

在操作系統中,使用進程是為了使多個程序能并發執行,以提高資源的利用率和系統吞吐量。在操作系統中再引入線程,則是為了減少采用多進程方式并發執行時所付出的系統開銷,使計算機操作系統具有更好的并發性。

操作系統操作進程,付出的系統開銷是比較大的。所以,系統中的進程,其數目不宜過多,進程切換的頻率也不宜過高,這也就限制了系統并發性的進一步提高。

線程是進程內一個相對獨立的、可調度的執行單元。進程是資源分配的基本單位。與進程相對應,線程與資源分配無關,它屬于某一個進程,并與進程內的其他線程一起共享進程的資源。另外,進程擁有一個完整的虛擬地址空間,而同一進程內的不同線程共享進程的同一地址空間。

線程是操作系統中的基本調度單元,進程不是調度的單元,所以每個進程在創建時,至少需要同時為該進程創建一個線程,線程也可以創建其他線程。進程是被分配并擁有資源的基本單元,同一進程內的多個線程共享該進程的資源,但線程并不擁有資源,只是使用它們。由于共享資源,所以線程間需要通信和同步機制。8.1.1線程引入8.1.2線程狀態

線程是相對獨立的、可調度的執行單元,因此在線程的運行過程中,會分別處于不同的狀態。通常而言,線程主要有下列幾種狀態:(1)就緒狀態:即線程已經具備運行的條件,等待調度程序分配CPU資源給這個線程運行。(2)運行狀態:調度程序分配CPU資源給該進程,該進程正在執行。(3)阻塞狀態:線程正等待某個條件符合或某個事件發生,才會具備運行的條件。下面是線程的狀態轉換圖,通過該圖,會給大家介紹線程的執行過程和狀態轉換。

對線程的基本操作主要有以下5種,通過這五種操作,使線程在各個狀態之間轉換:派生:線程屬于進程,可以由進程派生出線程,線程所擁有的資源將會被創建。一個線程即可以有進程派生,也可以由線程派生。在Java中,可以創建一個線程并通過調用該線程的start()方法使該線程進入就緒狀態。調度:調度程序分配CPU資源給就緒狀態的線程,使線程獲得CPU資源進行運行,即執行Java線程類中run()方法里的內容。阻塞:正在運行狀態的線程,在執行過程中需要等待某個條件符合或某個事件發生,此時線程進入阻塞狀態。阻塞時,寄存器上下文、程序計數器以及堆桟指針都會得到保存。激活:在阻塞狀態下的線程,如果需要等待的條件符合或事件發生,則該線程被激活并進入就緒狀態。結束

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論