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

正文內(nèi)容

java2面向?qū)ο蟪绦蛟O計基礎線程ppt-資料下載頁

2025-10-10 04:51本頁面
  

【正文】 lse) { ? try { ? wait()。 ? } catch (InterruptedException e) { } ? } ? available = false。 ? notifyAll()。 ? return contents。 ? } ? public synchronized void put(int value) { ? while (available == true) { ? try { ? wait()。 ? } catch (InterruptedException e) { } ? } 線程同步示例 ? contents = value。 ? available = true。 ? notifyAll()。 ? } ? } ? public class Consumer extends Thread { ? private CubbyHole cubbyhole。 ? private int number。 ? public Consumer(CubbyHole c, int number) { ? cubbyhole = c。 ? = number。 ? } ? public void run() { ? int value = 0。 ? for (int i = 0。 i 10。 i++) { ? value = ()。 ? (Consumer + ? + got: + value)。 線程同步示例 ? } ? } ? } ? class ProducerConsumerTest ? { ? public static void main(String[] args) ? { ? CubbyHole c = new CubbyHole()。 ? Producer p1 = new Producer(c, 1)。 ? Consumer c1 = new Consumer(c, 1)。 ? ()。 ? ()。 ? } ? } ? 運行結果如圖 612所示。 線程同步示例 ? 圖 612 運行結果 (例 ) 線程同步示例 ? 本程序就好比一個臥底與一個情報人員專門約定在一個樹洞通信一樣。當臥底往樹洞里投放了情報后,只有等著情報員將情報拿走了,才能繼續(xù)往樹洞里面投放情報,否則只有等待。 ? 程序中定義了三個類, Producer、 Consumer和 CubbyHole三個類。 ? 值得注意的是, Producer類和 Consumer類所調(diào)用 CubbyHole類的 put和 get方法都是同步方法,這樣就保證了臥底和情報員在情報的投放和領取上保持了一致。 設置線程優(yōu)先級示例 ?本節(jié)舉例介紹如何設置線程的優(yōu)先級。程序如下。 ?【 例 】 設置線程優(yōu)先級。例子詳見書188~191頁 ?運行的結果如圖 613所示。 設置線程優(yōu)先級示例 ? 圖 613 運行結果 (例 ) ThreadLocal問題 ? ThreadLocal類中有以下三個方法: ? Object get()。檢索變量的當前線程的值。 ? protected Object initialValue()??蛇x的,如果線程未使用過某個變量,那么可以用這個方法來設置這個變量的初始值;它允許延遲初始化。 ? void set(Object value)。修改當前線程的值。 ThreadLocal問題 ? 【 例 】 ThreadLocal的具體應用舉例,程序如下。 ? import 。 ? import .*。 ? class DebugLogger { ? private static class ThreadLocalList extends ThreadLocal { ? public Object initialValue() { ? return new ArrayList()。 ? } ? public List getList() { ? return (List) ()。 ? } ? } ? private ThreadLocalList list = new ThreadLocalList()。 ? private static String[] stringArray = new String[0]。 ? public void clear() { ? ().clear()。 ? } ? public void put(String text) { ? ().add(text)。 ? } ? public String[] get() { ? ().toArray(stringArray)。 ? return stringArray。 ? } ? } 課后練習 ? 1. 填空題 ? (1) 可以通過 __________和 __________來編寫一個線程類。 ? (2) 線程有 __________、 __________、 __________和__________狀態(tài)。 ? 2. 選擇題 ? (1) 一個線程想讓另一個線程不能執(zhí)行,它對第二個線程調(diào)用 yield()方法,能實現(xiàn)嗎 ? ( ) ? A. True B. False ? (2) 一個線程的 run()方法代碼如下: ? try{ ? sleep(100)。 ? }catch(InterruptedException e) {} ? 假設線程沒有被中斷,下列為真的是 ( )。 ? A. 代碼不會被編譯,因為異常不會在線程的 run()方法中捕獲 ? B. 在代碼的第 2 行,線程將停止運行,至多 100ms 后恢復執(zhí)行 ? C. 在代碼的第 2 行,線程將停止運行,恰好在 100ms 恢復執(zhí)行 ? D. 在代碼的第 2 行,線程將停止運行,在 100ms 后的某個時間恢復執(zhí)行 課后練習 ? 3. 判斷題 ? (1) C和 Java都是多線程語言。 ( ) ? (2) 如果線程死亡,它便不能運行。 ( ) ? 4. 簡答題 ? (1) 創(chuàng)建線程的兩種方法是什么? ? (2) 線程的四種狀態(tài)是什么? ? 5. 操作題 ? (1) 編寫一個 Race類,它模擬兔子和烏龜之間的賽跑。用 ()方法使比賽更有趣。 ? (2) 編寫一個 StackTest類,其中實現(xiàn)后進先出的數(shù)據(jù)結構,并且線程是安全的,不會產(chǎn)生死鎖。 Q amp。 A? Thanks!
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1