课程名称:Java高并发之魂:synchronized深度解析
课程章节:第三章 synchronized用法
课程讲师: 悟空
课程内容:
1、synchronized用法有哪两种?
对象锁:
1.1、包括方法锁(默认锁对象为this当前实例对象),synchronized修饰普通方法,锁对象默认为this。
1.2、同步代码块锁(自己指定锁对象),手动指定锁对象; 在某些情况下,我们编写的方法体可能比较大,同时存在一些比较耗时的操作,而需要同步的代码又只有一小部分,如果直接对整个方法进行同步操作,可能会得不偿失,此时我们可以使用同步代码块的方法对需要同步的代码进行包裹,这样就无需对整个方法进行同步操作了。
类锁:java类可能有多个对象,但是只有一个class对象,指synchronized修饰静态的方法或指定锁为Class对 象,它的本质不过就是class对象的锁而已,类锁只能在同一时刻被一个对象拥有,其他要使用只会被阻塞。
课程收获:
谢谢老师,讲的非常细致,很容易懂。这一节学的是synchronized的用法,理解synchronized的关键就在于:若想要多个线程同步,则这些线程必须竞争同一个同步锁。这个同步锁,可以理解为一个对象。
对Synchronized关键字的用法有了更加明确的用法,非常期待后边的学习。