国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 扎赉特旗| 江源县| 鸡泽县| 韶山市| 北碚区| 共和县| 古蔺县| 广宗县| 柳江县| 南涧| 沁源县| 英吉沙县| 馆陶县| 息烽县| 昂仁县| 沅陵县| 正蓝旗| 莎车县| 蓬安县| 龙江县| 汉川市| 望谟县| 都安| 上虞市| 平远县| 汽车| 二连浩特市| 育儿| 息烽县| 青神县| 靖宇县| 绿春县| 桂阳县| 沅陵县| 黑河市| 禹城市| 莆田市| 大庆市| 龙岩市| 长丰县| 杭锦旗|