成熟的锁模型
1.指定锁对象
2.加锁
3.进入临界区
4.释放锁
image.png指定所对象的解释
首先一定指定当前锁对象,这个是为了保证不同线程中使用同一把锁保护共享变量,只有所对象相同,才能保证是通一把锁。
名词解释
临界区:
一段需要互斥执行的代码称之为临界区。
锁正确使用的三要素
1.同一个所对象
2.临界区的选择
3.锁的获取和释放
Java 语言提供的锁技术:synchronized
锁是一种通用的技术方案,Java 语言提供的 synchronized 关键字,就是锁的一种实现。synchronized 关键字可以用来修饰方法,也可以用来修饰代码块。
synchronized的不同所对象
当修饰静态方法的时候,锁定的是当前类的 Class 对象,在上面的例子中就是 Class X;
当修饰非静态方法的时候,锁定的是当前实例对象 this。
网友评论