无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

線程的死鎖的代碼

2020-04-14 21:08 作者:小垃圾kiki  | 我要投稿
package cn.jd.syn;

/*
?* 死鎖:過多的同步可能造成相互不釋放資源
?* 從而相互等待,一般發(fā)生于同步中持有多個對象的鎖
?* 如何解決:不要在同一個代碼塊中,同時持有多個對象的鎖
?* 第二個鎖在第一個鎖里面才能造成死鎖
?*/
public class DeadLock {
?? ?public static void main(String[] args) {
?? ??? ?Makeup g1 = new Makeup(1, "哈哈");
?? ??? ?Makeup g2 = new Makeup(0, "呵呵");
?? ??? ?g1.start();
?? ??? ?g2.start();

?? ?}
}

//口紅
class Lipstick {

}

//鏡子
class Mirror {

}

//化妝
class Makeup extends Thread {
?? ?// 表示一面口紅和一個鏡子
?? ?static Lipstick lipstick = new Lipstick();
?? ?static Mirror mirror = new Mirror();
?? ?// 選擇
?? ?int choice;
?? ?// 名字
?? ?String girl;

?? ?public Makeup(int choice, String girl) {
?? ??? ?this.choice = choice;
?? ??? ?this.girl = girl;
?? ?}

?? ?@Override
?? ?public void run() {
?? ??? ?// 化妝
?? ??? ?makeup();
?? ?}

?? ?// 相互持有對方的對象鎖-->可能造成死鎖
?? ?private void makeup() {
?? ??? ?if (choice == 0) {
?? ??? ??? ?synchronized (lipstick) {// 獲得口紅的鎖
?? ??? ??? ??? ?System.out.println(this.girl + "涂口紅");
?? ??? ??? ??? ?// 1秒后想擁有鏡子的鎖
?? ??? ??? ??? ?try {
?? ??? ??? ??? ??? ?Thread.sleep(1000);
?? ??? ??? ??? ?} catch (InterruptedException e) {
?? ??? ??? ??? ??? ?// TODO Auto-generated catch block
?? ??? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ??? ?}
?? ??? ??? ??? ?
?? ??? ??? ?}
?? ??? ??? ?synchronized (mirror) {
?? ??? ??? ??? ?System.out.println(this.girl + "照鏡子");
?? ??? ??? ?}
?? ??? ?} else {
?? ??? ??? ?synchronized (mirror) {// 獲得口紅的鎖
?? ??? ??? ??? ?System.out.println(this.girl + "照鏡子");
?? ??? ??? ??? ?// 1秒后想擁有口紅的鎖
?? ??? ??? ??? ?try {
?? ??? ??? ??? ??? ?Thread.sleep(1000);
?? ??? ??? ??? ?} catch (InterruptedException e) {
?? ??? ??? ??? ??? ?// TODO Auto-generated catch block
?? ??? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ??? ?}
?? ??? ??? ??? ?
?? ??? ??? ?}
?? ??? ??? ?synchronized (lipstick) {
?? ??? ??? ??? ?System.out.println(this.girl + "涂口紅");
?? ??? ??? ?}

?? ??? ?}
?? ?}
}

線程的死鎖的代碼的評論 (共 條)

分享到微博請遵守國家法律
手游| 阜宁县| 盘锦市| 蕉岭县| 沽源县| 昭苏县| 玛多县| 宣化县| 行唐县| 肃北| 洛隆县| 都江堰市| 韶关市| 通榆县| 台中市| 噶尔县| 义马市| 磐安县| 隆林| 永川市| 张家界市| 抚松县| 昭通市| 庐江县| 博湖县| 鹿邑县| 社会| 泰安市| 玛沁县| 宣武区| 内乡县| 温宿县| 无极县| 株洲市| 贺兰县| 永登县| 衢州市| 永嘉县| 正阳县| 砚山县| 密云县|