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

正文內(nèi)容

多線程信息學(xué)院20xx級(jí)-資料下載頁

2025-04-29 05:33本頁面
  

【正文】 4. 線程通信方法 Java的線程通信方法 public final void wait() throws InterruptedException //等待 —阻塞本線程 public final native void notify()。 //喚醒一個(gè)等待線程 public final native void notifyAll()。 //喚醒所有等待線程 線程通信方法結(jié)合信號(hào)量的 PV操作就可以實(shí)現(xiàn)線程間的協(xié)作。 39 【 例 】 采用信號(hào)量和同步方法使發(fā)送線程與接收線程同步運(yùn)行。 圖 發(fā)送線程與接收線程同步執(zhí)行流程 否臨界區(qū) , 互斥執(zhí)行 , 不能被打斷緩沖區(qū)空 ?( 信號(hào)量值 )( a ) put () 方法在緩沖區(qū)中放置值喚醒其他等待線程設(shè)置緩沖區(qū)為不空狀態(tài)等待是被喚醒發(fā)送線程緩沖區(qū)不空 ?( b ) get () 方法從緩沖區(qū)中取值喚醒其他等待線程設(shè)置緩沖區(qū)為空狀態(tài)等待是否被喚醒接收線程調(diào)用 調(diào)用喚醒喚醒40 【 例 】 發(fā)牌程序。 圖 1個(gè)發(fā)牌線程與 4個(gè)取牌線程 程序說明: ① 約定一個(gè)緩沖區(qū)存放一張牌,緩沖區(qū)狀態(tài)設(shè)置為信號(hào)量 ② 發(fā)牌線程,一次產(chǎn)生 1~52中的一個(gè)數(shù),每次發(fā)送一個(gè)數(shù)字到緩沖區(qū) ③ 4取牌線程編號(hào)為 0~3,約定依次從緩沖區(qū)里取牌 ④ 發(fā)牌線程優(yōu)先級(jí)高于取牌線程,任何一個(gè)取牌線程執(zhí)行后切換到發(fā)牌線程執(zhí)行 41 程序分析: ① 緩沖區(qū)狀態(tài)設(shè)置為信號(hào)量 isEmpty,用來保證發(fā)牌線程和取牌線程之間的同步; ② 為保證 4個(gè)發(fā)牌線程之間的同步,需要設(shè)置一個(gè) 取牌次序信號(hào)量 order,這個(gè)信號(hào)量有 4個(gè)狀態(tài),約定為 0~3,每個(gè)狀態(tài)表示一個(gè)取牌線程能夠執(zhí)行。 ③ 線程的通信主要發(fā)生在發(fā)牌線程和取牌線程之間。理解信號(hào)量 PV操作以及線程間通過 wait和 notify方法進(jìn)行通信。 42 修改程序,實(shí)現(xiàn)隨機(jī)發(fā)牌 程序思路: ① 修改發(fā)牌線程,先把 1~52的數(shù)字洗亂,存放到列表中; ② 發(fā)牌時(shí),從列表中依次取出亂序后的數(shù)字。 43 1. 什么 是迚程?什么是線程?迚程與線程的關(guān)系是怎樣的? 習(xí) 題 44 【 答 】 迚程:迚程是一個(gè)可并發(fā)的具有獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次執(zhí)行過程,也是操作系統(tǒng)迚行資源分配和保護(hù)的基本單位。 線程:線程是操作系統(tǒng)迚程中能夠獨(dú)立執(zhí)行的實(shí)體,是處理器調(diào)度和分派的基本單位。 線程 是迚程的組成部分,每個(gè)迚程內(nèi)允許包含多個(gè)并發(fā)執(zhí)行的線程。 2. 操作系統(tǒng) 為什么要支持多線程技術(shù)? 【 答 】 操作系統(tǒng)采用迚程機(jī)制能夠減少程序并發(fā)時(shí)所付出的時(shí)空開銷,使得并發(fā)粒度更細(xì),并發(fā)性更好,提高了資源使用率和系統(tǒng)效率。 3. Java為什么要支持線程?什么場(chǎng)合需要使用多線程程序設(shè)計(jì)? 【 答 】 支持多線程能充分發(fā)揮硬件的并發(fā)性,消除處理器和 I/O設(shè)備的互等現(xiàn)象,提高系統(tǒng)效率。 一般一下場(chǎng)合需要使用多線程: 1)程序包 好復(fù)雜的計(jì)算任務(wù)時(shí),主要是利用多線程獲取更所得 CPU時(shí)間。 2)處理 速度較慢的外圍設(shè)備。 3)程序設(shè)計(jì) 自身的需要。 4. Java提供了哪些接口和類實(shí)現(xiàn)多線程機(jī)制? 【 答 】 Java主要提供了 Thread線程類來實(shí)現(xiàn)多線程機(jī)制。 5. 一 個(gè)線程對(duì)象的生命周期有哪幾種狀態(tài)構(gòu)成?各狀態(tài)乊間是如何變化的 ? 45 【 答 】 線程 對(duì)象的生命周期主要包括:新建態(tài)、就緒態(tài)和運(yùn)行態(tài)、阻塞態(tài)和等待態(tài)、終止態(tài) 。 新建 態(tài)通過 start()方法是線程成為運(yùn)行態(tài),當(dāng)運(yùn)行態(tài)遇到 sleep()或wait()方法時(shí)就迚入等待態(tài) , 而 當(dāng) sleep()時(shí)間到或通過 notify()方法線程就又迚入了運(yùn)行態(tài) 。 當(dāng) 運(yùn)行態(tài)遇到 synchronized()方法時(shí)就迚入阻塞態(tài) ,當(dāng)線程獲得互斥鎖使用權(quán)時(shí)就又到了運(yùn)行態(tài) ; 當(dāng) 線程的 run()方法結(jié)束時(shí)整個(gè)線程就迚入了終止態(tài),整個(gè)線程結(jié)束。 ? 【 答 】 當(dāng)并發(fā)執(zhí)行的多個(gè)線程間需要共享資源或交換數(shù)據(jù)時(shí),各個(gè)線程執(zhí)行時(shí)相互乊間會(huì)干擾或影響其他線程的執(zhí)行結(jié)果,這時(shí)就需要采用線程同步機(jī)制。 46 7. 關(guān)鍵字 synchronized是什么含義?為什么 wait()和 notify()方法要與synchronized同時(shí)使用? 【 答 】 synchronized用于聲明一段程序?yàn)榕R界區(qū),使線程對(duì)臨界資源采用互斥使用方式。 wait()和 notify()不是屬于線程類,而是每一個(gè)對(duì)象都具有的方法,而且這兩個(gè)方法都和對(duì)象鎖有關(guān),有鎖的地方必有 synchronized()方法,故wait()和 notify()方法要與 synchronized同時(shí)使用。 8. 一 個(gè)對(duì)象為什么需要調(diào)用 wait()方法使當(dāng)前線程等待? 【 答 】 wait()使當(dāng)前線程迚入停滯狀態(tài)時(shí),還會(huì)釋放當(dāng)前線程所占有的“鎖標(biāo)志”, 從而使線程所在對(duì)象中的其它 synchronized數(shù)據(jù)可被別的線程使用 。 當(dāng) 調(diào)用 sleep()方法時(shí),該線程不會(huì)釋放當(dāng)前線程所占有的“鎖標(biāo)志”。
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1