freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java多線(xiàn)程ppt課件(編輯修改稿)

2024-11-15 04:51 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 1. class myThread extends Thread{ 2. myThread(String str){ super(str)。 } 3. public void run( ){ 4. try{ (2)。} 5. catch(InterruptedException e) { 6. (())。 7. } 8. (the Thread Name=+getName( )+, Priority= + 9. getPriority( ))。 10. } 11.} ? 【 實(shí)例 85】 驗(yàn)證了 Java對(duì)多線(xiàn)程的調(diào)度方法。 12. public class testTheadPriority{ 13. public static void main(String agrs[]){ 14. Thread minThread=new myThread(MinPriorityThread )。 15. Thread normThread=new myThread(NormPriorityThread )。 16. Thread maxThread=new myThread(MaxPriorityThread )。 17. ()。 18. ()。 19. ()。 20. ( )。 21. ( )。 22. ( )。 23. } 24. } ? 【 實(shí)例 85】 ? 程序輸出結(jié)果: the Thread Name=MaxPriorityThread, Priority=10 the Thread Name=NormPriorityThread, Priority=5 the Thread Name=MinPriorityThread, Priority=1 資源沖突 ? 多個(gè)線(xiàn)程同時(shí)運(yùn)行雖然可以提高程序的執(zhí)行效率,但由于共享一組資源,可能會(huì)產(chǎn)生沖突,例如【 實(shí)例 86】 。 ? 【 實(shí)例 86】 1. class myThread{ 2. void Test(int n) { 3. (運(yùn)行線(xiàn)程 NO: +n)。 4. try{(3)。} 5. catch(InterruptedException e) 6. {(線(xiàn)程異常, NO:+n)。} 7. (結(jié)束線(xiàn)程 NO: +n)。 8. } 9. } ? 【 實(shí)例 86】 rThread implements Runnable{ 11. myThread Obj。 12. int num。 13. rThread(myThread t, int n) { 14. Obj=t。 15. num=n。 16. } 17. public void run( ) { 18. (num)。 19. } 20.} ? 【 實(shí)例 86】 class ThreadClash { 22. public static void main(String args[ ]) { 23. myThread Obj=new myThread( )。 24. Thread t1=new Thread(new rThread(Obj, 1))。 25. Thread t2=new Thread(new rThread(Obj, 2))。 26. Thread t3=new Thread(new rThread(Obj, 3))。 27. ( )。( )。( )。 28. } 29.} ? 【 實(shí)例 86】 ? 程序運(yùn)行結(jié)果: 運(yùn)行線(xiàn)程 NO: 1 運(yùn)行線(xiàn)程 NO: 2 運(yùn)行線(xiàn)程 NO: 3 結(jié)束線(xiàn)程 NO: 1 結(jié)束線(xiàn)程 NO: 2 結(jié)束線(xiàn)程 NO: 3 同步方法 ? 同一進(jìn)程的多個(gè)線(xiàn)程共享同一片存儲(chǔ)空間,在帶來(lái)方便的同時(shí),也帶來(lái)了訪(fǎng)問(wèn)沖突這個(gè)嚴(yán)重的問(wèn)題。 ? 可以通過(guò) private 關(guān)鍵字來(lái)保證數(shù)據(jù)對(duì)象只能被方法訪(fǎng)問(wèn) ? synchronized 關(guān)鍵字:鎖定沖突的方法和鎖定沖突的對(duì)象。 同步方法 ? 1.鎖標(biāo)志 – 每個(gè)對(duì)象都有一個(gè)標(biāo)志鎖。當(dāng)對(duì)象的一個(gè)線(xiàn)程訪(fǎng)問(wèn)了對(duì)象的某個(gè)synchronized數(shù)據(jù)時(shí),這個(gè)對(duì)象就將被 “ 上鎖 ” – 被聲明為 synchronized的數(shù)據(jù)都不能被調(diào)用 – 只有當(dāng)前線(xiàn)程訪(fǎng)問(wèn)完它要訪(fǎng)問(wèn)的 synchronized數(shù)據(jù)者拋出了沒(méi)有在 synchronized 塊中捕獲的異常時(shí),釋放 “ 鎖標(biāo)志 ” 后,同一個(gè)對(duì)象的其它線(xiàn)程才能訪(fǎng)問(wèn) synchronized數(shù)據(jù)。 – 這樣,每次只有一個(gè)線(xiàn)程可以執(zhí)行給定監(jiān)控器保護(hù)的代碼塊。從其它線(xiàn)程的角度看,該代碼塊可以看作是原子的,它要么全部執(zhí)行,要么根本不執(zhí)行。 同步方法 ? 1.鎖標(biāo)志 – 鎖用于保護(hù)代碼塊或整個(gè)方法,必須記住是鎖的身份保護(hù)了代碼塊,而不是代碼塊本身,這一點(diǎn)很重要。一個(gè)鎖可以保護(hù)許多代碼塊或方法。 – 反之,僅僅因?yàn)榇a塊由鎖保護(hù)并不表示兩個(gè)線(xiàn)程不能同時(shí)執(zhí)行該代碼塊。它只表示如果兩個(gè)線(xiàn)程正在等待相同的鎖,則它們不能同時(shí)執(zhí)行該代碼。 – 此外 nonstatic的 synchronized數(shù)據(jù)只能在同一個(gè)對(duì)象的純種實(shí)現(xiàn)同步訪(fǎng)問(wèn),不同對(duì)象的線(xiàn)程仍可同時(shí)訪(fǎng)問(wèn)。 – 每個(gè) class也有一個(gè) “ 鎖標(biāo)志 ” 。對(duì)于 synchronized static數(shù)據(jù)可以在整個(gè) class下進(jìn)行鎖定,避免 static數(shù)據(jù)的同時(shí)訪(fǎng)問(wèn)。對(duì)象的 “ 鎖標(biāo)志 ” 和 class的 “ 鎖標(biāo)志 ” 是相互獨(dú)立的。這點(diǎn)在前面已舉例說(shuō)明,在此不在贅述。 同步方法 ? 2. 鎖定沖突的方法 – 即在待鎖定方法聲明中加入 synchronized關(guān)鍵字。這種加上synchronized關(guān)鍵字的方法也稱(chēng) synchronized方法。 – 格式為: public synchronized void accessVal(int newVal)。 – synchronized方法控制對(duì)類(lèi)成員變量的訪(fǎng)問(wèn):每個(gè)類(lèi)實(shí)例對(duì)應(yīng)一把鎖,每個(gè) synchronized 方法都必須獲得調(diào)用該方法的類(lèi)實(shí)例的鎖方能執(zhí)行,否則所屬線(xiàn)程阻塞,方法一旦執(zhí)行,就獨(dú)占該鎖,直到從該方法返回時(shí)才將鎖釋放,此后被阻塞的線(xiàn)程方能獲得該鎖,重新進(jìn)入可執(zhí)行狀態(tài)。這種機(jī)制確保了同一時(shí)刻對(duì)于每一個(gè)類(lèi)實(shí)例,其所有聲明為 synchronized 的成員函數(shù)中至多只有一個(gè)處于可執(zhí)行狀態(tài)(因?yàn)橹炼嘀挥幸粋€(gè)能夠獲得該類(lèi)實(shí)例對(duì)應(yīng)的鎖),從而有效避免了類(lèi)成員變量的訪(fǎng)問(wèn)沖突(只
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1