最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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 + "涂口紅");
?? ??? ??? ?}

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

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

分享到微博請遵守國家法律
博爱县| 井陉县| 银川市| 邯郸县| 安顺市| 三都| 乐山市| 靖边县| 宿松县| 孟津县| 徐汇区| 乌审旗| 武强县| 息烽县| 扬州市| 宁武县| 乐安县| 博罗县| 河津市| 启东市| 乌兰浩特市| 万盛区| 色达县| 苗栗市| 鄂伦春自治旗| 琼结县| 韶关市| 沂源县| 林西县| 甘谷县| 台中县| 任丘市| 团风县| 阿图什市| 英吉沙县| 荔波县| 绥棱县| 临猗县| 固安县| 噶尔县| 盐源县|