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

正文內(nèi)容

基于工作過程的java程序設(shè)計(jì)--第9章java線程-資料下載頁

2024-10-18 13:06本頁面
  

【正文】 rruptedException { ? 如果棧滿就等待; ? 把對(duì)象壓入堆棧并喚醒因操作堆棧而等待的線程; ? } ? synchronized Object pop() throws InterruptedException { ? 如果??站偷却?; ? 彈出數(shù)據(jù)并喚醒因操作堆棧而等待的線程; ? } ? } ? 2.編碼實(shí)現(xiàn) ? 1) 變量常量定義 ? 語句: ? static final int CAPACITY=5。 ? Vector v。 ? 分析:常量 CAPACITY表示堆棧的大小,這里定義 5。 vs是一個(gè)Vector對(duì)象。 ? 2) 構(gòu)造方法 ? 語句: ? VectorStack(){ ? v = new Vector()。 ? } ? 分析:構(gòu)造方法實(shí)例化一個(gè)Vector對(duì)象。 ? 3) 如果容量滿等待 ? 語句: ? while (()=CAPACITY) wait()。 ? 分析:在一個(gè)時(shí)刻,只能有一個(gè)線程訪問方法 push(Object obj),所以必須在方法 push(Object obj)前使用關(guān)鍵字 synchronized。 wait()方法是在 Object類中定義的,它可以讓線程掛起。 ? 4) 把對(duì)象壓入堆棧并喚醒因操作堆棧而等待的線程 ? 語句: ? (obj)。 ? ( PUSH: +obj)。 ? notify()。 ? 分析:如果堆???,負(fù)責(zé)彈出的線程會(huì)因沒有數(shù)據(jù)而等待。有數(shù)據(jù)壓入后,用 notify()喚醒因操作該堆棧而等待的線程序。 ? 5) 如果棧空就等待 ? 語句: ? while (()==0) wait()。 ? 分析:如果沒有數(shù)據(jù)彈出, Pop()方法只有等待。 ? 6) 彈出數(shù)據(jù)并喚醒因操作堆棧而等待的線程 ? 語句: ? Object obj = ()。 ? (()1)。 ? ( Pop: +obj)。 ? notify()。 ? return obj。 ? 分析:棧滿時(shí)壓入線程會(huì)等待,所以一旦彈出一個(gè)數(shù)據(jù),立即喚醒等待線程。 ? 3.源代碼 略。 4.測(cè)試與運(yùn)行 5.技術(shù)分析 ? 1) 線程同步 –線程同步指某段程序只能有一個(gè)線程運(yùn)行。也就是說只有當(dāng)該線程運(yùn)行結(jié)束后,其它線程才能運(yùn)行。 ? 2) 線程交互 –使用了關(guān)鍵字 synthronized之后,就可以協(xié)調(diào)多個(gè)線程對(duì)某個(gè)方法或某個(gè)代碼塊的執(zhí)行。如果要想讓線程等待某個(gè)事件的發(fā)生然后繼續(xù)執(zhí)行的話,這就涉及到線程的交互。 Java的類 Object中通過 wait(), notify(),notifyAll()來實(shí)現(xiàn)。 6. 問題與思考 ? 實(shí)例中如果彈出的速度比壓入的速度快會(huì)出現(xiàn)什么結(jié)果?適當(dāng)修改程序,并解釋結(jié)果。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1