国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java制造死鎖

2019-11-06 08:21:12
字體:
來源:轉載
供稿:網友
package suo;public class DeadLockTest implements Runnable{	 PRivate int flag;	 static Object o1 = new Object(), o2 = new Object();      //靜態的對象,被DeadLockTest的所有實例對象所公用	 public void run(){	  System.out.println(flag);	  if(flag == 0){	   synchronized(o1){	    try{	     Thread.sleep(500);	    } catch(Exception e){	     e.printStackTrace();	    }	    synchronized(o2){	    }	   } 	  }	  if(flag == 1){	   synchronized(o2){	    try{	     Thread.sleep(500);	    } catch(Exception e){	     e.printStackTrace();	    }	    synchronized(o1){	    }	   } 	  } 	 }	 public static void main(String[] args){	  DeadLockTest test1 = new DeadLockTest();	  DeadLockTest test2 = new DeadLockTest();	  test1.flag = 1;	  test2.flag = 0;	  Thread thread1 = new Thread(test1);	  Thread thread2 = new Thread(test2);	  thread1.start();	  thread2.start();	 }	}/*解釋:在main方法中,實例化了兩個實現了Runnable接口的DeadLockTest對象test1和test2,test1的flag等于1,所以在thread1線程執行的時候執行的是run()方法后半部分的代碼,test2的flag等于2,所以在thread2線程啟動的時候執行的是run()方法前半部分的代碼,此時,出現了下列現象:thread1線程占有了o1對象并等待o2對象,而thread2線程占有了o2對象并等待o1對象,而o1和o2又被這倆個線程所共享,所以就出現了死鎖的問題了。*/
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 康保县| 浦江县| 湖北省| 平泉县| 陵川县| 普兰店市| 佛学| 屯留县| 那坡县| 来安县| 延长县| 滨海县| 丹江口市| 手游| 射阳县| 台东县| 延边| 襄樊市| 舞阳县| 乐都县| 齐齐哈尔市| 德格县| 汉阴县| 九寨沟县| 淮北市| 宁强县| 河北省| 九龙县| 阿坝县| 平武县| 积石山| 吕梁市| 南漳县| 厦门市| 宁夏| 三河市| 洛扎县| 拜泉县| 乌兰浩特市| 普兰店市| 定结县|