国产探花免费观看_亚洲丰满少妇自慰呻吟_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又被這倆個線程所共享,所以就出現了死鎖的問題了。*/
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北海市| 海宁市| 新泰市| 察雅县| 高邮市| 沁水县| 扶风县| 齐河县| 金平| 湖州市| 分宜县| 诸暨市| 含山县| 新蔡县| 普安县| 晴隆县| 衢州市| 酒泉市| 岑巩县| 友谊县| 屯留县| 石泉县| 清流县| 万全县| 沁源县| 黄浦区| 蕲春县| 榆中县| 甘南县| 县级市| 黔江区| 花莲县| 万盛区| 津市市| 云浮市| 藁城市| 遂宁市| 巨鹿县| 阿荣旗| 洛阳市| 柏乡县|