hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 后端开发 - 正文 君子好学,自强不息!

【后端开辟】java锁是什么?

2019-11-16后端开发搜奇网69°c
A+ A-

锁是java并发编程中最主要的同步机制。JAVA中完成加锁是经由过程Synchronized关键字以及java.util.concurrent包下的相干类。

Java中锁的观点

自旋锁 : 是指当一个线程在猎取锁的时刻,假如锁已被其他线程猎取,那末该线程将轮回守候,然后不停推断锁是不是能够被胜利猎取,直到猎取到锁才会退出轮回。

乐观锁 : 假定没有争执,在修正数据时假如发明数据和之前猎取的不一致,则读最新数据,修正后重试修正

消极锁 :假定会发作并发争执,同步一切对数据的相干操纵,从读数据就最先上锁

独享锁(写) : 给资本加上写锁,具有该锁的线程能够修正资本,其他线程不能再加锁(单写)

同享锁(读) : 给资本加上读锁后只能读不能改,其他线程也只能加读锁,不能加写锁 (多读)

可重入锁 :线程拿到一把锁后,能够自在进入统一把锁所同步的代码

不可重入锁 :线程拿到一把锁后,不能够自在进入统一把锁所同步的代码

平正锁 :争抢锁的递次,根据先来后到的递次

非平正锁 :争抢锁的递次,不根据先来后到的递次

Java中几种主要的锁完成体式格局:synchronized, ReentrantLock, ReentrantReadWriteLock

同步关键字:synchronized

锁的作用域:对象锁,类锁,分布式锁

synchronized特征:可重入,独享,消极锁

锁优化:

锁消弭是发作在编译器级别的一种锁优化体式格局,是指虚拟机立即编译器在运行时,对一些代码上要求同步,然则被检测到不可能存在同享数据合作的锁举行削除(开启锁消弭的参数:-xx:+DoEscapeAnalysis -XX:+EliminateLocks)

锁粗化:是指有些情况下我们反而愿望把很屡次锁的要求合并成一个要求,以下降短时间内大批锁要求、同步、开释带来的机能消耗

Note: synchronized关键字,不仅完成同步,JMM中划定,synchronized要保证可见性(不能够被缓存)

synchronized用法代码示例:

public class Counter {
private static int i = 0;
// 等价于 synchronized(this)
public synchronized void update() {
i++;
}
public void updateBlock() {
synchronized (this) {
i++;
}
}
// 等价于 synchronized (Counter.class)
public static synchronized void staticUpdate() {
i++;
}
public static void staticUpdateBlock() {
synchronized (Counter.class) {
i++;
}
}
}

以上就是java锁是什么?的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
【后端开辟】java锁是什么?

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签:

本文来源:搜奇网

本文地址:https://www.sou7.cn/281706.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>