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

正文內(nèi)容

java的多線程機(jī)制-資料下載頁

2024-10-12 15:38本頁面

【導(dǎo)讀】Java中多線程的編程。線程的同步與死鎖。程序是為完成特定任務(wù)、用某種語言編寫的。一組指令的集合。指一段靜態(tài)的代碼。進(jìn)程是程序的一次執(zhí)行過程,是系統(tǒng)進(jìn)行調(diào)。度和資源分配的一個(gè)獨(dú)立單位。線程是比進(jìn)程更小一級(jí)的執(zhí)行單元。成多條執(zhí)行線索。也是一個(gè)動(dòng)態(tài)的概念。一個(gè)線程有它自己的入口和出口,以及一個(gè)順序執(zhí)。線程不能獨(dú)立存在,必須存在于進(jìn)程中,各線程間。線程—線程創(chuàng)建、銷毀和切換的負(fù)荷遠(yuǎn)小于進(jìn)程,又稱為輕量級(jí)進(jìn)程。多線程是指同時(shí)存在幾個(gè)執(zhí)行體,按幾條不。同的執(zhí)行線索共同工作的情況。多線程實(shí)現(xiàn)單個(gè)進(jìn)程中的并發(fā)計(jì)算。各線程間共享進(jìn)程空間的數(shù)據(jù),并利用這些。多線程的程序能更好地表述和解決現(xiàn)實(shí)世界。的一個(gè)必然發(fā)展趨勢。Java語言的一個(gè)重要功能特點(diǎn)就是內(nèi)置對(duì)多。務(wù)的功能強(qiáng)大的應(yīng)用程序。Thread類綜合了Java程序中一個(gè)線程需要擁有。提供線程體的目標(biāo)對(duì)象是在初始化一個(gè)線程時(shí)。任何實(shí)現(xiàn)了Runnable接口的類

  

【正文】 } 6 Java的多線程機(jī)制 51 線程的同步與互斥 ?Wait_Notify 程序 ?創(chuàng)建用戶的線程子類 – Producer:產(chǎn)生數(shù)據(jù)(存數(shù)據(jù)) 。 – Consumer:消費(fèi)數(shù)據(jù)( 取數(shù)據(jù)) ?CubbyHole類,共享數(shù)據(jù)區(qū),同步方法 – put(int value)方法 – int get()方法 ?主類中創(chuàng)建共享數(shù)據(jù)對(duì)象,并啟動(dòng)兩線程 6 Java的多線程機(jī)制 52 class CubbyHole { private int seq。 // 共享數(shù)據(jù) private boolean available = false。 // 條件標(biāo)志變量 public synchronized int get(){ //取數(shù)據(jù)的同步方法 get() while( available= =false ){ try{ wait( )。 //條件不符合,則 wait }catch( InterruptedException e ){ } } available = false。 //修改條件 notify( )。 //通知喚醒其他等待管程的線程 return seq。 //返回要取出的數(shù)值 } //end of get() 6 Java的多線程機(jī)制 53 //存放數(shù)據(jù)的同步方法 put() public synchronized void put(int value){ while( available= =true ){ try{ wait( )。 //條件不符合,則 wait }catch( InterruptedException e ){ } } seq = value。 //把共享變量修改為要放置的數(shù)據(jù) available = true。 //修改條件 notify( )。 //通知喚醒其他等待管程的線程 } //end of put() } //end of class CubbyHole 6 Java的多線程機(jī)制 54 class Producer extends Thread { //生產(chǎn)者線程類 private CubbyHole cubbyhole。 private int number。 public Producer(CubbyHole c, int number) { cubbyhole = c。 = number。 } public void run() { //定義 run()方法 for (int i = 0。 i 10。 i++) { //共產(chǎn)生 10個(gè) (i)。 (Producer + + put: + i)。 try { sleep((int)(() * 100))。 } catch (InterruptedException e) { } } } } //end of class Producer 6 Java的多線程機(jī)制 55 class Consumer extends Thread { //消費(fèi)者線程類 private CubbyHole cubbyhole。 private int number。 public Consumer(CubbyHole c, int number) { cubbyhole = c。 = number。 } public void run() { //定義 run()方法 int value = 0。 for (int i = 0。 i 10。 i++) {//消費(fèi) 10個(gè) value = ()。 (Consumer ++ got: +value)。 } } } //end of class Consumer 6 Java的多線程機(jī)制 56 class ProducerConsumerTest { //主類: 測試 public static void main(String[] args) { CubbyHole c = new CubbyHole()。//the shared data object Producer p1 = new Producer(c, 1)。 //Producer線程 Consumer c1 = new Consumer(c, 1)。 //Consumer線程 ()。 //啟動(dòng)生產(chǎn)者線程 ()。 //啟動(dòng)消費(fèi)者線程 } } //end of ProducerConsumerTest 程序執(zhí)行結(jié)果: 生產(chǎn)者線程和消費(fèi)者線程嚴(yán)格地輪流執(zhí)行,獲得了線程間的協(xié)調(diào)執(zhí)行。 6 Java的多線程機(jī)制 57 線程的死鎖 ?死鎖 –不同的線程分別占用對(duì)方需要的同步資源不放棄,都在等待對(duì)方放棄自己需要的同步資源,就形成了線程的死鎖 ?解決方法 –專門的算法、原則 –盡量減少同步資源的定義 6 Java的多線程機(jī)制 58 動(dòng)畫 ?即若干幅相近的圖片接連顯示 ?例:旋轉(zhuǎn)的地球 6 Java的多線程機(jī)制 59 public class RollEarth extends Applet implements Runnable { … … … public void run() { //實(shí)現(xiàn)動(dòng)畫 … … … while (true) { //循環(huán)往復(fù)地顯示每一幀圖片 try { displayImage(m_Graphics)。 m_nCurrImage++。 if (m_nCurrImage = = NUM_IMAGES) m_nCurrImage = 0。 (50)。 } catch (InterruptedException e) { } } } //end of run() … … … } //end of class 6 Java的多線程機(jī)制 60 課后作業(yè) ? P202. 第 1 1 13題
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1