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

1.简介

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

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

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

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

运行一下看看结果:

 

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

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

控制台没有任何输出。

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

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

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

 

使用这个命令:

 

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

 

也可以使用这个命令:

 

会出现这样的一个页面。

 点击对应的程序:

 

 

 

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

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

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

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

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

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

 

相关内容

热门资讯

MiniMax上市后首份成绩单... 资料图。本文来源:第一财经 作者:刘晓洁MiniMax上市后首份成绩单:亏损与收入同增,海外份额超7...
格力电器回应“未来每年将不再派... 近日有投资者在互动平台向格力电器提问,称近期网络上有传闻称“格力电器未来每年将不再派发股息”,作为长...
年轻人的消费激情,在折扣店里生... 前段时间,一份权威调研报告,描绘了当下年轻人的消费画像:精打细算,“质价比”成为消费决策核心;为“心...
税务总局六项举措落地 规范招商... 3月2日,国家税务总局甩出重磅成果——2025年治理违规招商引资涉税问题的六项举措全面落地,直接剑指...
伊朗货币崩盘,2个月暴跌30倍... 记者丨冯紫彤编辑丨方海平 肖嘉 见习编辑林芊蔚汇率贬值超过30倍,伊朗仅用了两个月。21世纪经济报道...