为了账号安全,请及时绑定邮箱和手机立即绑定

Java高并发之魂:synchronized深度解析

难度入门
时长 2小时50分
学习人数
综合评分9.53
114人评价 查看评价
9.7 内容实用
9.3 简洁易懂
9.6 逻辑清晰
悟空老师很用心呀 ,棒
在线程访问第一个上锁的方法的时候,线程拿到了这把锁,同时其他线程陷入阻塞状态在等待,第一个获得锁的线程继续访问第二个上锁的方法,但这个时候,第二个上锁的方法是在第一个上锁方法的内部的,所以这个线程无法释放第一把锁,也就无法拿到第二个方法的锁,所以,此线程陷入了一种既无法释放锁也无法拿到锁的状态,这应该就是死锁了,于此同时其他线程也只能干等着,但是那个线程也很无奈啊,放不下也拿不起,都干等着,我都着急,于是我直接长按电源键,哈哈,这是我的理解
讲的很好,我一听就懂
第一节课,老师上课好像很生动的样子呢

最赞回答 / qq_Wzl_3
我对jvm不太了解,但用Linux中的给你解释下。 当一个线程想去获取一把锁而获取不到时,是处在一个死循环状态。 while( 没有得到锁) {      尝试获取锁; } 所以就相当于死在了这个循环里面。 当然还有尝试锁,先尝试获取,没获取到就退出,而不是死在循环中。 锁的内容还有很多,慢慢学吧。
可以这样理解,因为静态方法属于类,当多个线程访问的这个静态方法的时候,相当于数据共享了,所以当给这个方法上锁之后,肯定是不能同时访问的,而不加static的话,就是多个线程自己执行自己的方法,cpu随机的,就算加了锁也没什么卵用。除非这个Runable子类被其他线程共享,这也是数据共享了
非常感谢老师,让我更加深刻的了解synchronized了,期待下一期的课程
讲得挺好的,清晰易懂,期待下一期课程
右下角的coding小朋友怎么弄的呢
很不错,感觉已经完全理解了synchronized关键字的用法。
老师讲的很好,为老师点赞!
感谢悟空老师,期待下期课程,赞!
课程须知
1、基本的Java语法知识。 2、最基本的线程知识,比如在Java中如何创建线程。
老师告诉你能学到什么?
1、完全学会高并发中synchronized这个最灵魂级解决方案以及一线互联网资深工程师的开发、调试经验,提高填‘坑’能力。 2、synchronized底层原理源码深度解析、适用场景、使用和调试。 3、高并发面试中synchronized的高频经典考察点,让你在面试中和面试官聊到停不下来。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消