多线程并发编程笔记01(小滴课堂)
创始人
2025-05-28 19:14:20

1.简介

 上下文的频繁切换,会带来一定的性能开销,所以也不是线程越多越好。

 对于死锁,我们现在模拟的场景是,A抓B的头发的同时,B也抓A的头发。

我们做模拟的这个场景的demo代码:

我们要选择项目的jdk是jdk8,因为jdk8开始才可以使用lamda表达式。

运行一下看看结果:

 

 我们发现它是正常运行的。

我们现在给它加上一个休眠时间:

控制台没有任何输出。

我们如何判断我们是否发生了死锁呢?

 可以使用我们jdk给我们提供的工具。

通过jps查询到我们的端口号。

 

使用这个命令:

 

它会提示我们发生了死锁。

 

也可以使用这个命令:

 

会出现这样的一个页面。

 点击对应的程序:

 

 

 

就可以显示我们发生的死锁。

 这就是我们对死锁的初步认识。

我们可以写这样一段代码。运行:

现在我们每次线程执行一次方法都让它休眠10毫秒,再去运行:

运行不会有任何问题,但是每次运行的结果都会和咱们期望的结果有一定的差距。这是运行之前无法发现的。

 这就是我们线程安全性的一个问题。

 

相关内容

热门资讯

科普实测新世界确实可以开挂吗(... 您好:新世界这款游戏可以开挂,确实是有挂的,需要软件加微信【7337349】,很多玩家在新世界这款游...
玩家实测“微乐甘肃麻将可以开挂... 您好:微乐甘肃麻将这款游戏可以开挂,确实是有挂的,需要软件加微信【4770480】,很多玩家在微乐甘...
玩家实测“花城牌舍其实的确有透... 您好:花城牌舍这款游戏可以开挂,确实是有挂的,需要软件加微信【8700483】,很多玩家在花城牌舍这...
玩家必备攻略“小闲54棋牌可以... 您好:小闲54棋牌这款游戏可以开挂,确实是有挂的,需要软件加微信【2606488】,很多玩家在小闲5...
重磅分享“闲逸互娱,怎么开挂 ... 您好:闲逸互娱,这款游戏可以开挂,确实是有挂的,需要软件加微信【3398215】,很多玩家在闲逸互娱...