Java并發(fā)編程線程入門簡介

Java并發(fā)編程線程入門簡介

ID:41037248

大小:36.50 KB

頁數(shù):6頁

時間:2019-08-14

Java并發(fā)編程線程入門簡介_第1頁
Java并發(fā)編程線程入門簡介_第2頁
Java并發(fā)編程線程入門簡介_第3頁
Java并發(fā)編程線程入門簡介_第4頁
Java并發(fā)編程線程入門簡介_第5頁
資源描述:

《Java并發(fā)編程線程入門簡介》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在工程資料-天天文庫

1、Java并發(fā)編程:線程?????從一開始Java就被設計成支持并發(fā)編程的語言,java語言及其核心類庫都有對并發(fā)編程的支持。從5.0開始,Java平臺引入了一些高層的并發(fā)接口。本系列文章將盡可能的概括這些內(nèi)容?! ∵M程與線程  并發(fā)編程模式中,有兩個基本執(zhí)行單元:進程與線程。進程和線程是現(xiàn)代操作系統(tǒng)的基本概念。一個進程擁有獨立完備的執(zhí)行環(huán)境,進程擁有私有的計算機資源,比如獨立的內(nèi)存空間、代碼段、指令寄存器等等。進程在操作系統(tǒng)中基本等同于應用程序。最終用戶看到的獨立程序有可能是多個互相協(xié)作的進程,為了方便進程之間的通信,大多數(shù)操作系統(tǒng)支持進程間通信(InterProcessCommun

2、ication,IPC)資源,比如管道和端口。IPC往往不僅僅在同一臺計算機系統(tǒng)上使用,也往往運用于不同計算機系統(tǒng)之間的通信?! 【€程通常也稱輕量級進程,線程擁有的資源比進程的要少。線程只存在于進程中,一個進程可以包含多個線程。比如一個Java程序中可以有多個線程存在。線程不擁有獨立的內(nèi)存空間,而是和同進程內(nèi)的其他線程共享進程的內(nèi)存空間。由于線程共享進程的資源(內(nèi)存或者打開的文件),同進程的線程之間往往需要大量的互斥和同步,保證資源使用的可確定性。這在前面文章中已經(jīng)說過,資源共享是并發(fā)編程中同步和互斥的根源。  由于進程的特性,使得它們之間資源共享的沖突比較少,因此并發(fā)編程主要是針對

3、線程的,多線程編程是Java程序的基本特征。因此這兒講的并發(fā)編程主要是針對Java線程編程的?! ava線程  簡單來說,每個Java線程都有一個Thread實例與之對應。創(chuàng)建線程對象的方法通常有兩種:  1.直接創(chuàng)建和管理,也就是每當程序需要異步執(zhí)行任務時就實例化一個Thread對象,然后自己管理其生命周期?! ?.抽象線程管理,使其從程序代碼中分離開來。這些接口在java5之后的java.util.concurrency包中提供。  我們先討論第一種方式,java.util.concurrency包提供的高層工具我們在后面的文章再討論?! 〉谝环N方式創(chuàng)建線程非常直接,有兩種方法

4、可以創(chuàng)建一個線程實例:  1.生成一個Runnable對象,并將它傳遞給Thread對象。1publicclassHelloWorldimplementsRunnable{2????publicvoidrun(){3????????System.out.println("HelloWorld");4????}5????publicstaticvoidmain(Stringargs[]){6????????(newThread(newHelloWorld())).start();7????}8}9  2.繼承Thread并實現(xiàn)其run方法:1publicclassHelloThread

5、extendsThread{2????publicvoidrun(){3????????System.out.println("HelloWorld!");4????}5????publicstaticvoidmain(Stringargs[]){6????????(newHelloThread()).start();7????}8}9???????如何選擇使用哪種方式呢?第一種模式更為通用,實現(xiàn)一個Runnable接口允許你繼承并復用某類。第二種更簡單,缺點是必須繼承Thread。你可以根據(jù)具體情況選擇。  Thread對象中定義了一些有用的方法來管理線程的生命周期:  1.pub

6、licstaticvoidsleep(longmillis)throwsInterruptedException方法,該方法掛起當前線程一段時間,主動讓出處理器讓其他線程使用。sleep方法還可以用來控制執(zhí)行的速度。注意這個方法在掛起線程時,有可能被其他線程中斷掛起,因此不能依賴其時間參數(shù)來定時。  2.publicvoidinterrupt()方法,該方法中斷某線程正在做的事情,告訴它某些事情發(fā)生了需要處理。程序員需要捕捉這個中斷異常,并在異常處理中執(zhí)行應該做的動作。接受中斷的方式有兩種,一種是被中斷線程目前正在執(zhí)行一個能拋出InterruptedException的方法,比如sl

7、eep或者Object.wait等方法,還比如一些可以被interrupted的SeverSocket.accept方法等等。下面是示例代碼:1for(inti=0;i

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。