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

正文內(nèi)容

java語言程序設計基礎第2版線程ppt(編輯修改稿)

2024-11-14 15:05 本頁面
 

【文章內(nèi)容簡介】 leepInterrupt implements Runnable { public void run() { try { (in run() 休眠大概 20秒 )。 (20210)。 (in run() 醒來 )。 } catch ( InterruptedException x ) { (in run() 中斷一忽兒休眠 )。 return。 } 2021/11/10 40 (in run() 小睡后執(zhí)行 stuff)。 (in run() 正常離開 )。 } public static void main(String[] args) { SleepInterrupt si = new SleepInterrupt()。 Thread t = new Thread(si)。 ()。 //讓新的線程獲得機會去執(zhí)行 try { (2021)。 }catch ( InterruptedException x ) { } (in main() 中斷其他線程 )。 ()。 (in main() 離開 )。 } } 2021/11/10 41 程序運行結(jié)果 : in run() – 休眠大概 20秒 in main() – 中斷其他線程 in run() – 中斷一忽兒休眠 in main() – 離開 2021/11/10 42 join()方法的使用 public class ThreadJoin{ public static void main(String args[ ]) throws Exception{ int i=0。 Wele t = new Wele( )。 ( )。 while( true){ (早上好! +i++)。 if (i == 2 amp。amp。 ()){ (等 Wele!)。 ( )。 //等待 t運行結(jié)束 } 2021/11/10 43 if (i==2) break 。 } } } class Wele extends Thread{ int i 。 public void run( ){ while( true){ (歡迎您! +i++)。 if (i==2) break 。 } } } 2021/11/10 44 程序某次運行結(jié)果: 早上好! 0 早上好! 1 歡迎您! 0 歡迎您! 1 2021/11/10 45 線程同步 ?在 Java中 ,通過對象加鎖實現(xiàn)同步機制 .在 Java中 ,每個對象 (包括數(shù)組 )都有一把鎖 ,只在對某資源獲得其鎖時才能訪問該資源 .鎖實現(xiàn)了互斥功能 ,也就是保證在同一時間內(nèi) ,只有一個線程可訪問共享資源 . 對象鎖機制保證同步規(guī)則是 : ?線程在可以進入共享資源之前 ,必須先獲得該資源的對象鎖 .Java運行系統(tǒng)保證對某個資源已有線程控制其對象鎖時 ,其他線程就不能進入該資源 .如線程不能立即獲得資源的對象鎖 ,該線程必須在等到該鎖有空之前都被封鎖 . ?線程退出共享資源時 ,Java運行系統(tǒng)保證該資源的對象鎖空出來 .如有等待該資源對象鎖的線程 ,按次序可獲得該對象鎖 . 2021/11/10 46 簡單線程同步 public class SyncExample { private static Object lockObject = new Object()。 private static class Thread1 extends Thread { int x,y。 public void run() { synchronized (lockObject) { x =0。 y = 0。 (x)。 } } } 2021/11/10 47 private static class Thread2 extends Thread { int x,y。 public void run() { synchronized (lockObject) { x = 1。 y = 1。 (y)。 } } } public static void main(String[] args) { new Thread1().run()。 new Thread2().run()。 } } 2021/11/10 48 運行結(jié)果 : 0 1 2021/11/10 49 對象層鎖 public class TwoObjects { private String objID。 public TwoObjects(String objID) { = objID。 } public static void main(String[] args) { final TwoObjects obj1 = new TwoObjects(obj1)。 final TwoObjects obj2 = new TwoObjects(obj2)。 Runnable runA = new Runnable() { public void run() { (3)。 } }。 2021/11/10 50 Thread threadA = new Thread(runA, threadA)。 ()。 try { (200)。 }catch ( InterruptedException x ) { } Runnable runB = new Runnable() { public void run() { (7)。 } }。 Thread threadB = new Thread(runB, threadB)。 ()。 } 2021/11/10 51 public synchronized void doStuff(int val) { print(輸入 doStuff())。 int num = val * 2 + ()。 print(在 doStuff()中 局部變量 num= + num)。 // slow things down to make observations try { (2021)。 }catch ( InterruptedException x ) { } print(離開 doStuff())。 } 2021/11/10 52 public void print(String msg) { threadPrint(objID= + objID + + msg)。 } public static void threadPrint(String msg) { String threadName = ().getName()。 (threadName + : + msg)。 } } 2021/11/10 53 程序運行結(jié)果 : threadA: objID=obj1 – 輸入 doStuff() threadA: objID=obj1 – 在 doStuff()中 – 局部變量 num=10 threadB: objID=obj2 – 輸入 doStuff() threadB: objID=obj2 – 在 doStuff()中 – 局部 1變量 num=18 threadA: objID=obj1 – 離開 doStuff() threadA: objID=obj2 – 離開 doStuff() 2021/11/10 54 靜態(tài)變量同步 public class StaticSync extends Object { private static int nextSerialNum = 10001。 public static synchronized int getNextSerialNum() {
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1