一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java并發(十六)----線程八鎖

Java并發(十六)----線程八鎖

2023-12-03 01:06未知服務器之家 Java教程

所謂的“線程八鎖” 其實就是看 synchronized 鎖住的是哪個對象 情況1: 12 或 21 都是有可能的,就看cpu先調度哪個線程 @Slf4j(topic = "c.Number")class Number{ ? ?public synchronized void a() { ? ? ? ?log.debug("1"); ? } ? ?public synchronized void b() { ?

所謂的“線程八鎖”

其實就是看 synchronized 鎖住的是哪個對象

情況1:12 或 21都是有可能的,就看cpu先調度哪個線程

@Slf4j(topic = "c.Number")
class Number{
 ? ?public synchronized void a() {
 ? ? ? ?log.debug("1");
 ?  }
 ? ?public synchronized void b() {
 ? ? ? ?log.debug("2");
 ?  }
}
?
public static void main(String[] args) {
 ? ?Number n1 = new Number();
 ? ?new Thread(()->{ n1.a(); }).start();
 ? ?new Thread(()->{ n1.b(); }).start();
}

情況2:1s后12,或 2 1s后 1 ,還是看cpu先調度哪個線程

@Slf4j(topic = "c.Number")
class Number{
 ? ?public synchronized void a() {
 ? ? ? ?sleep(1); //睡眠1秒
 ? ? ? ?log.debug("1");
 ?  }
 ? ?public synchronized void b() {
 ? ? ? ?log.debug("2");
 ?  }
}
?
public static void main(String[] args) {
 ? ?Number n1 = new Number();
 ? ?new Thread(()->{ n1.a(); }).start();
 ? ?new Thread(()->{ n1.b(); }).start();
}

情況3:3 1s后 12 、 23 1s后 1 、 32 1s后 1,3肯定是最開始的打印的,就看1或2誰先打印

@Slf4j(topic = "c.Number")
class Number{
 ? ?public synchronized void a() {
 ? ? ? ?sleep(1);//睡眠1秒
 ? ? ? ?log.debug("1");
 ?  }
 ? ?public synchronized void b() {
 ? ? ? ?log.debug("2");
 ?  }
 ? ?public void c() { // 未加鎖
 ? ? ? ?log.debug("3");
 ?  }
}
?
public static void main(String[] args) {
 ? ?Number n1 = new Number();
 ? ?new Thread(()->{ n1.a(); }).start();
 ? ?new Thread(()->{ n1.b(); }).start();
 ? ?new Thread(()->{ n1.c(); }).start();
}

情況4:2 1s 后 1,沒有互斥,同時運行,2先打印,sleep 1秒后打印1

@Slf4j(topic = "c.Number")
class Number{
 ? ?public synchronized void a() {
 ? ? ? ?sleep(1);//睡眠1秒
 ? ? ? ?log.debug("1");
 ?  }
 ? ?public synchronized void b() {
 ? ? ? ?log.debug("2");
 ?  }
}
?
public static void main(String[] args) {
 ? ?Number n1 = new Number();
 ? ?Number n2 = new Number();
 ? ?new Thread(()->{ n1.a(); }).start();
 ? ?new Thread(()->{ n2.b(); }).start();
}

情況5:2 1s 后 1,鎖住的對象不同,所以和題4一樣,不存在互斥。

@Slf4j(topic = "c.Number")
class Number{
 ? ?public static synchronized void a() {
 ? ? ? ?sleep(1);//睡眠1秒
 ? ? ? ?log.debug("1");
 ?  }
 ? ?public synchronized void b() {
 ? ? ? ?log.debug("2");
 ?  }
}
?
public static void main(String[] args) {
 ? ?Number n1 = new Number();
 ? ?new Thread(()->{ n1.a(); }).start();
 ? ?new Thread(()->{ n1.b(); }).start();
}

情況6:1s 后12, 或 2 1s后 1,還是看cpu先調度哪個線程

@Slf4j(topic = "c.Number")
class Number{
 ? ?public static synchronized void a() {
 ? ? ? ?sleep(1);//睡眠1秒
 ? ? ? ?log.debug("1");
 ?  }
 ? ?public static synchronized void b() {
 ? ? ? ?log.debug("2");
 ?  }
}
?
public static void main(String[] args) {
 ? ?Number n1 = new Number();
 ? ?new Thread(()->{ n1.a(); }).start();
 ? ?new Thread(()->{ n1.b(); }).start();
}

情況7:2 1s 后 1,鎖住的對象不同,所以和題4一樣,不存在互斥。

@Slf4j(topic = "c.Number")
class Number{
 ? ?public static synchronized void a() {
 ? ? ? ?sleep(1);//睡眠1秒
 ? ? ? ?log.debug("1");
 ?  }
 ? ?public synchronized void b() {
 ? ? ? ?log.debug("2");
 ?  }
}
?
public static void main(String[] args) {
 ? ?Number n1 = new Number();
 ? ?Number n2 = new Number();
 ? ?new Thread(()->{ n1.a(); }).start();
 ? ?new Thread(()->{ n2.b(); }).start();
}

情況8:1s 后12, 或 2 1s后 1,鎖著的同一個對象,還是看cpu先調度哪個線程

@Slf4j(topic = "c.Number")
class Number{
 ? ?public static synchronized void a() {
 ? ? ? ?sleep(1);//睡眠1秒
 ? ? ? ?log.debug("1");
 ?  }
 ? ?public static synchronized void b() {
 ? ? ? ?log.debug("2");
 ?  }
}
?
public static void main(String[] args) {
 ? ?Number n1 = new Number();
 ? ?Number n2 = new Number();
 ? ?new Thread(()->{ n1.a(); }).start();
 ? ?new Thread(()->{ n2.b(); }).start();
}

?

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 激情影院免费观看 | 被黑人同学彻底征服全文小说阅读 | 国产欧美国产综合第一区 | 好大好粗好舒服 | 五月最新商场女厕所高跟嘘嘘 | 亚洲 欧美 中文 日韩 另类 | 精品久久久久久久久免费影院 | 95视频免费看片 | 日韩制服丝袜在线观看 | 国产99久久九九精品免费 | 欧美成人免费草草影院视频 | 久久88综合 | 亚洲视频一区二区在线观看 | 男人的天堂在线观看入口 | 九九99亚洲精品久久久久 | 国产亚洲精品九九久在线观看 | 欧美乱妇高清无乱码视频在线 | 国产三及| 日韩欧美一区二区在线 | 日本在线观看www鲁啊鲁视频 | 国产精品视频自拍 | 精品国产乱码久久久久久免费 | 香蕉视频在线观看网址 | 国产精品久久久久久搜索 | 国产精品成人麻豆专区 | 日韩网站在线 | 韩国漂亮美女三级在线观看 | 日本xxxxxxxxx高清hd | 日本人和黑人一级纶理片 | 人与动人物aaaa | 午夜福利在线观看6080 | 国产精品久久一区 | 国产成人亚洲综合a∨婷婷 国产成人亚洲精品乱码在线观看 | 日韩一品在线播放视频一品免费 | 疯狂激吻添下边小说 | 日本免费全黄一级裸片视频 | 国产麻豆传媒在线观看 | 97超pen个人视频公开视频视 | 4虎影院在线观看 | 天天躁天天碰天天看 | 性姿势女人嗷嗷叫图片 |