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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

史上超級無敵多線程死鎖

2019-11-14 15:39:31
字體:
供稿:網(wǎng)友


 *  synchronized:并不是往對象里面枷鎖,鎖是每個對象都有的屬性,synchronized只是鎖上了這把鎖,是個持續(xù)的動作而已
 *  死鎖就是大家都訪問不了的狀態(tài)
 *
 *  兩個線程,
 *  兩個線程先后訪問兩個互斥的對象
 *
 *  原理:
 *      1某個線程執(zhí)行完成,需要 先后 嵌套 鎖定 執(zhí)行兩個對象,但是,過程當(dāng)中,肯定就鎖定了第一個對象
 *      2 另外一個線程執(zhí)行完成,也需要先后嵌套鎖定執(zhí)行兩個對象,先執(zhí)行鎖定第二個對像
 *      3 在第一個執(zhí)行過程中,執(zhí)行到第二個對象時,發(fā)現(xiàn)被鎖定了,等待
 *      4 第二個線程執(zhí)行過程中,執(zhí)行到第一個對象的時候,發(fā)現(xiàn)第一個被鎖死了,也只能等待.

 

public class Thread DeadLock{
    public static void main(String[] args){
        Object o1 = new Object();
        Object o2 = new Object();

        Thread t1 = new Thread(new A(o1,o2));
        Thread t2 = new Thread(new B(o1,o2));
        t1.start();
        t2.start();
    }
}

class A implements Runnable{
    Object o1;
    Object o2;

    T1(Object o1, Object o2){
        this.o1 = o1;
        this.o2 = o2;
    }

    public void run(){
        synchronized(o1){
            try{
                Thread.sleep(1000);
            }catch(Exception e){
                e.PRintStackTrace();
            }
            synchronized(o2){
                System.out.println( "t1" );
            }
        }
    }
}

class B implements Runnable{
    Object o1;
    Object o2;

    T2(Object o1, Object o2){
        this.o1 = o1;
        this.o2 = o2;
    }

    public void run(){
        synchronized(o2){
            try{
                Thread.sleep(1000);
            }catch(Exception e){
                e.printStackTrace();
            }
            synchronized(o1){
                System.out.println( "t2" );
            }
        }
    }
}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 西城区| 富顺县| 竹溪县| 常德市| 元阳县| 浮梁县| 时尚| 集安市| 武汉市| 英吉沙县| 台北县| 中方县| 香格里拉县| 兴安县| 伊吾县| 太仆寺旗| 芒康县| 乌兰浩特市| 西乡县| 琼中| 商洛市| 西藏| 永平县| 永宁县| 隆子县| 昌宁县| 洪江市| 青海省| 额济纳旗| 安龙县| 赤峰市| 平乐县| 罗甸县| 平泉县| 泸州市| 中牟县| 庆云县| 常州市| 密山市| 油尖旺区| 布拖县|