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

正文內(nèi)容

第16章多線程-預(yù)覽頁

2025-08-13 07:56 上一頁面

下一頁面
 

【正文】 1。 } (exit from +getName())。 (T2)。 } } exit from main T2(1) T1(1) T1(2) T1(3) T2(2) T1(1) T1(2) T1(3) T2(3) exit from T1 T2(1) T2(2) T2(3) exit from T2 實(shí)現(xiàn) Runnable接口 ? 到目前為止,線程都是通過擴(kuò)展 Thread類來創(chuàng)建的,如果程序員需要 繼承其他類 (非Thread類 )并使該程序可以使用線程,就需要使用 Runnable接口 。 ? 2)使用參數(shù)為 Runnable對(duì)象的構(gòu)造方法創(chuàng)建 Thread實(shí)例。 public MyThread2(String name) { =name。 } } public static void main(String[] args) { new Thread(new MyThread2(th1)).start()。 MyThread2 th2=new MyThread2(th2)。*/ } 實(shí)現(xiàn) Runnable接口 ? 實(shí)現(xiàn) Runnable接口比繼承 Thread類所具有的優(yōu)勢(shì): ? 適合多個(gè)相同的程序代碼的線程去處理同一個(gè)資源 ? 可以避免 java中的單繼承的限制 ? 增加程序的健壯性,代碼可以被多個(gè)線程共享,代碼和數(shù)據(jù)獨(dú)立 線程的生命周期 ? 線程生命周期中的各種狀態(tài) 線程的生命周期 ? 線程具有生命周期,其中包含 7種狀態(tài),分別為 出生狀態(tài)、就緒狀態(tài)、運(yùn)行狀態(tài)、等待狀態(tài)、休眠狀態(tài)、阻塞狀態(tài)和死亡狀態(tài)。 ? 如果一個(gè)線程在運(yùn)行狀態(tài)下發(fā)出 輸入 /輸出請(qǐng)求 ,該線程將進(jìn)入 阻塞狀態(tài) ,在其等待輸入 /輸出結(jié)束時(shí)線程進(jìn)入 就緒狀態(tài) ,對(duì)于阻塞的線程來說,即使系統(tǒng)資源空閑,線程依然不能回到運(yùn)行狀態(tài); ? 當(dāng)線程的 run()方法 執(zhí)行完畢時(shí),線程進(jìn)入 死亡狀態(tài) 。 ? 調(diào)用 sleep()方法 。 ? 線程調(diào)用 notify()方法 。 ? 輸入 /輸出結(jié)束 。 }catch(InterruptedException e){ ()。 )。 )。 線程的加入 ? 為什么要用 join()方法 ?在很多情況下,主線程生成并起動(dòng)了子線程,如果子線程里要進(jìn)行大量的耗時(shí)的運(yùn)算, 主線程往往將于子線程之前結(jié)束 , ?但是如果主線程處理完其他的事務(wù)后,需要用到子線程的處理結(jié)果,也就是 主線程需要等待子線程執(zhí)行完成之后再結(jié)束 ,這個(gè)時(shí)候就要用到 join()方法了。 i 3。 } } } } public static void main(String[] args) { (().getName()+ 主線程運(yùn)行開始 !)。 ()。 ()。 } catch (InterruptedException e) { ()。 public void run() { while (true) { (count + )。 ? 對(duì)于支持多任務(wù)的操作系統(tǒng)來說,不需要調(diào)用 yeild()方法,因?yàn)椴僮飨到y(tǒng)會(huì)為線程自動(dòng)分配 CPU時(shí)間片來執(zhí)行。 ? 其中每個(gè)線程的優(yōu)先級(jí)都在~ 之間,在默認(rèn)情況下其優(yōu)先級(jí)都是 PRIORITY。 ? 線程的優(yōu)先級(jí)可以使用 setPriority()方法 調(diào)整,如果使用該方法設(shè)置的優(yōu)先級(jí)不在 1~10之內(nèi),將產(chǎn)生一個(gè) IllegalArgumentException異常。 i5。 Thread t2=new MyThread51(t2)。 ()。 ? 臨界區(qū)的使用必須 互斥地進(jìn)行 ,即一個(gè)線程在臨界區(qū)中執(zhí)行代碼時(shí),其他線程不能進(jìn)入臨界區(qū)。 } catch (Exception e) { ()。 // 以該類對(duì)象分別實(shí)例化 4個(gè)線程 Thread tB = new Thread(t)。 // 分別啟動(dòng)線程 ()。 ?為了解決多線程并發(fā)操作可能引起的數(shù)據(jù)混亂,在 java中,引入對(duì)象“ 互斥鎖 ”,以保證共享數(shù)據(jù)操作的完整性。 ? 一個(gè)線程運(yùn)行到同步塊時(shí)首先檢查該對(duì)象的標(biāo)志位,如果為 0狀態(tài),表明此同步塊中存在其他線程在運(yùn)行。 } catch (Exception e) { ()。必須將每個(gè)能訪問共享資源的方法修飾為 synchronized,否則就會(huì)出錯(cuò)。 線程間的通信 ? 線程之間的通信使用 wait()、 notify()以及notifyAll()方法實(shí)現(xiàn)。 ? notifyAll()方法可以喚醒所有處于等待狀態(tài)的線程。如果此刻線程 B正在 wait/sleep /join,則線程 B會(huì)立刻拋出 InterruptedException,在catch() {} 中直接 return即可安全地結(jié)束線程。 wait和 sleep區(qū)別 ? 不同點(diǎn): ? 3. wait, notify和 notifyAll只能在同步控制方法或者同步控制塊里面使用,而sleep可以在任何地方使用 ? 4. sleep必須捕獲異常,而 wait, notify和notifyAll不需要捕獲異常
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1