真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

好程序員Java學(xué)習(xí)路線(xiàn)分享多線(xiàn)程概念

 好程序員Java學(xué)習(xí)路線(xiàn)分享多線(xiàn)程概念

創(chuàng)新互聯(lián)主營(yíng)靈武網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開(kāi)發(fā)公司,靈武h5微信小程序搭建,靈武網(wǎng)站營(yíng)銷(xiāo)推廣歡迎靈武等地區(qū)企業(yè)咨詢(xún)

 1、進(jìn)程:正在執(zhí)行中的程序,其實(shí)是應(yīng)用程序在內(nèi)存中運(yùn)行的那片空間。

?

 2、線(xiàn)程:進(jìn)程中的一個(gè)執(zhí)行單元,負(fù)責(zé)進(jìn)程中的程序的運(yùn)行,一個(gè)進(jìn)程中至少要有一個(gè)線(xiàn)程。一個(gè)進(jìn)程中可以有多個(gè)線(xiàn)程的,這個(gè)應(yīng)用程序也可以稱(chēng)之為多線(xiàn)程程序。

?

 3、程序啟動(dòng)多線(xiàn)程,有什么應(yīng)用呢?可以實(shí)現(xiàn)多個(gè)程序同時(shí)執(zhí)行,專(zhuān)業(yè)術(shù)語(yǔ)稱(chēng)為并發(fā)。多線(xiàn)程的使用可以合理使用cpu的資源,如果線(xiàn)程過(guò)多導(dǎo)致降低性能。

?

 4、創(chuàng)建線(xiàn)程的方式兩種方式:

?

 4.1、繼承Thread

?

 4.1.1、定義一個(gè)類(lèi)繼承Thread

?

 4.1.2、重寫(xiě)run方法

?

 4.1.3、創(chuàng)建子類(lèi)對(duì)象

?

 4.1.4、啟動(dòng)start方法

?

 4.2、實(shí)現(xiàn)Runnable

?

 4.2.1、定義類(lèi)實(shí)現(xiàn)runnable接口

?

 4.2.2、覆蓋接口中run方法,將線(xiàn)程任務(wù)代碼定義到run方法里。

?

 4.2.3、創(chuàng)建Thread類(lèi)的對(duì)象。

?

 4.2.4、將runnable接口的子類(lèi)對(duì)象作為參數(shù)傳入Thread類(lèi)的構(gòu)造方法里。

?

 4.2.5、啟用Thread類(lèi)的start方法。

?

 5、線(xiàn)程對(duì)象調(diào)用run方法和調(diào)用start方法區(qū)別?調(diào)用run方法不開(kāi)啟線(xiàn)程,近視對(duì)象調(diào)用方法。調(diào)用start方法開(kāi)啟線(xiàn)程,并讓JVM調(diào)用run方法在開(kāi)啟的線(xiàn)程中執(zhí)行。

?

 6、創(chuàng)建線(xiàn)程的目的是什么?是為了建立單獨(dú)的執(zhí)行路徑,讓多部分代碼實(shí)現(xiàn)同時(shí)執(zhí)行。也就是線(xiàn)程創(chuàng)建并執(zhí)行需要給定的代碼(線(xiàn)程任務(wù))。

?

 7、多線(xiàn)程執(zhí)行時(shí),在棧內(nèi)存中,其實(shí)每一個(gè)執(zhí)行線(xiàn)程都有一片自己所屬的棧內(nèi)存空間。進(jìn)行方法的壓棧和彈棧。當(dāng)執(zhí)行線(xiàn)程的任務(wù)結(jié)束了,線(xiàn)程自動(dòng)在棧內(nèi)存中釋放了。但是當(dāng)所有的執(zhí)行線(xiàn)程都結(jié)束了,那么進(jìn)程就結(jié)束了。

?

 8、Thread與Runnable的區(qū)別Runnable接口避免了單繼承的局限性。實(shí)現(xiàn)Runnable接口的方式,更加符合面向?qū)ο螅€(xiàn)程分為兩部分,一部分線(xiàn)程對(duì)象,一部分線(xiàn)程任務(wù)。繼承Thread類(lèi):線(xiàn)程對(duì)象和線(xiàn)程任務(wù)耦合在一起。一旦創(chuàng)建Thread類(lèi)的子類(lèi)對(duì)象,既是線(xiàn)程對(duì)象,又有線(xiàn)程任務(wù)。將線(xiàn)程任務(wù)單獨(dú)分離出來(lái)封裝成對(duì)象,類(lèi)型就是runnable接口類(lèi)型。實(shí)現(xiàn)Runnable接口對(duì)線(xiàn)程對(duì)象和線(xiàn)程任務(wù)進(jìn)行解耦。

?

 9、線(xiàn)程的運(yùn)行狀態(tài)被創(chuàng)建:運(yùn)行:該狀態(tài)是線(xiàn)程具備了CPU執(zhí)行資格的同時(shí)也具備了執(zhí)行權(quán),一個(gè)時(shí)刻只能有一個(gè)線(xiàn)程在執(zhí)行。消亡:當(dāng)run方法結(jié)束,線(xiàn)程就進(jìn)入了消亡狀態(tài)。凍結(jié):釋放了CPU的執(zhí)行權(quán)和執(zhí)行資格,有兩種方式:sieep(休眠)、wait(等待),同時(shí)也有兩種方式解除此狀態(tài),sleep(時(shí)間到)、notify()要注意的時(shí),當(dāng)線(xiàn)程從凍結(jié)狀態(tài)結(jié)束后,并沒(méi)有立馬運(yùn)行,只能說(shuō)它獲取了CPU的執(zhí)行資格,因?yàn)殡S機(jī)性的原因,它也可能轉(zhuǎn)換成臨時(shí)阻塞狀態(tài)。臨時(shí)阻塞狀態(tài):線(xiàn)程具備CPU的執(zhí)行資格,不具備執(zhí)行權(quán),正等著CPU切換到它運(yùn)行。

 10、多線(xiàn)程的安全性問(wèn)題的原因

?

 10.1多個(gè)線(xiàn)程在操作共享的數(shù)據(jù)。

?

 10.2線(xiàn)程任務(wù)操作共享數(shù)據(jù)的代碼有多條(運(yùn)算有多個(gè))。解決問(wèn)題:用同步代碼塊synchronized同步的好處:解決多線(xiàn)程的安全問(wèn)題。同步的弊端:降低了程序的性能。同步的前提:必須保證多個(gè)線(xiàn)程在同步中使用的是同一個(gè)鎖。同步的另一種體現(xiàn)形式:同步函數(shù)。同步函數(shù)使用的鎖是this。

?

 11、多線(xiàn)程安全問(wèn)題-同步函數(shù)使用的鎖和同步代碼塊的區(qū)別同步函數(shù)使用的鎖是固定的this。同步代碼塊使用的鎖可以是任意對(duì)象。

?

 12、靜態(tài)同步函數(shù)使用的鎖不是this,而是字節(jié)碼文件對(duì)象類(lèi)名.class。

?

 13、單例設(shè)計(jì)模式13.1惡漢式:

?

 代碼體現(xiàn):

?

 ClassSingle{

?

 PrivtaestaticfinalSingles=newSingle();

?

 PrivateSingle(){}

?

 PublicstaticSinglegetInstance(){

?

 Returns;}

?

 }

?

 13.2、懶漢式:延遲加載,存在著多線(xiàn)程并發(fā)訪(fǎng)問(wèn)的安全問(wèn)題,需要使用同步來(lái)解決安全問(wèn)題,但是同步會(huì)降低效率,所以使用雙重if()判斷形式解決效率低的問(wèn)題。

?

 實(shí)現(xiàn)代碼:ClassSingle{

?

 PrivateSingle(){}

?

 PrivatestaticSingles=null;

?

 PublicstaticSinglegetInstance(){

?

 If(s==null){

?

 Synchroinzed(Single.class){

?

 If(s==null)S=newSingle();

?

 }Returns;}

?

 }

?

 }

?

 14、死鎖:即同步的弊端,不是線(xiàn)程和進(jìn)程沒(méi)有了,而是不動(dòng)了。表現(xiàn)形式:同步嵌套的時(shí)候,使用的鎖不一樣,容易引發(fā)死鎖。

?

 實(shí)現(xiàn)代碼:

?

 //Thread-0

?

 Synchroinzed(obj1){Synchroinzed(obj2){}}

?

 //Thread-1

?

 Synchroinzed(obj2){Synchroinzed(obj1){}}

 


本文名稱(chēng):好程序員Java學(xué)習(xí)路線(xiàn)分享多線(xiàn)程概念
文章路徑:http://weahome.cn/article/pceche.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部