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

正文內(nèi)容

java的多線程機制(文件)

2025-11-02 15:38 上一頁面

下一頁面
 

【正文】 d paint(Graphics g) {//paint()方法中繪制框架 … … … } //end of paint() //update()方法中繪制賽跑者的進度 public void update(Graphics g) { for (int i = 0。 //重新繪制,自動調(diào)用 update()方法 try { (10)。 //中止賽跑線程 } if (()) updateThread = null。 pop(): 取出 num[i]。 –臨界區(qū) –實現(xiàn)機制:管程 6 Java的多線程機制 40 線程的同步與互斥 ?對象互斥鎖 在 Java中,每個對象有一個“互斥鎖”,該鎖可用來保證在同一時刻只能有一個線程訪問該對象。 ?在當(dāng)前線程被 notify后,要重新獲得監(jiān)控權(quán),然后從斷點處繼續(xù)代碼的執(zhí)行。 Thread tt = new Thread(ot) 。 //設(shè)標(biāo)記 public void run() { while (! timeToQuit ){ … } } public void stopRunning() { timeToQuit=true。 if (…) () 。 // 條件標(biāo)志變量 public synchronized int get(){ //取數(shù)據(jù)的同步方法 get() while( available= =false ){ try{ wait( )。 //返回要取出的數(shù)值 } //end of get() 6 Java的多線程機制 53 //存放數(shù)據(jù)的同步方法 put() public synchronized void put(int value){ while( available= =true ){ try{ wait( )。 //通知喚醒其他等待管程的線程 } //end of put() } //end of class CubbyHole 6 Java的多線程機制 54 class Producer extends Thread { //生產(chǎn)者線程類 private CubbyHole cubbyhole。 } public void run() { //定義 run()方法 for (int i = 0。 try { sleep((int)(() * 100))。 = number。 i++) {//消費 10個 value = ()。 //Producer線程 Consumer c1 = new Consumer(c, 1)。 6 Java的多線程機制 57 線程的死鎖 ?死鎖 –不同的線程分別占用對方需要的同步資源不放棄,都在等待對方放棄自己需要的同步資源,就形成了線程的死鎖 ?解決方法 –專門的算法、原則 –盡量減少同步資源的定義 6 Java的多線程機制 58 動畫 ?即若干幅相近的圖片接連顯示 ?例:旋轉(zhuǎn)的地球 6 Java的多線程機制 59 public class RollEarth extends Applet implements Runnable { … … … public void run() { //實現(xiàn)動畫 … … … while (true) { //循環(huán)往復(fù)地顯示每一幀圖片 try { displayImage(m_Graphics)。 } catch (InterruptedException e) { } } } //end of run() … … … } //end of class 6 Java的多線程機制 60 課后作業(yè) ? P202. 第 1 1 13題 。 if (m_nCurrImage = = NUM_IMAGES) m_nCurrImage = 0。 //啟動生產(chǎn)者線程 ()。 } } } //end of class Consumer 6 Java的多線程機制 56 class ProducerConsumerTest { //主類: 測試 public static void main(String[] args) { CubbyHole c = new CubbyHole()。 for (int i = 0。 private int number。 i++) { //共產(chǎn)生 10個 (i)。 public Producer(CubbyHole c, int number) { cubbyhole = c。 //把共享變量修改為要放置的數(shù)據(jù) available = true。 //修改條件 notify( )。 – Consumer:消費數(shù)據(jù)( 取數(shù)據(jù)) ?CubbyHole類,共享數(shù)據(jù)區(qū),同步方法 – put(int value)方法 – int get()方法 ?主類中創(chuàng)建共享數(shù)據(jù)對象,并啟動兩線程 6 Java的多線程機制 52 class CubbyHole { private int seq。 Thread t = new Thread(r) 。 … // 執(zhí)行自己的工作 try { () 。 ?調(diào)用方法的必要條件:當(dāng)前線程必須具有對該對象 的監(jiān)控權(quán)(加鎖) notifyAll() ?喚醒 wait隊列中的所有線程,并把它門移入鎖申請 隊列。 6 Java的多線程機制 42 線程的同步與互斥 ?線程間需協(xié)調(diào)與通訊:生產(chǎn)者 /消費者問題 進隊 出隊 生產(chǎn)者 消費者 6 Java的多線程機制 43 線程的同步與互斥 ?wait()與 notify() – Object類的方法: public final void – wait(): 令當(dāng)前線程掛起并放棄管程,同步資
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1