首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
锁
订阅
多变小生
更多收藏集
微信扫码分享
微信
新浪微博
QQ
8篇文章 · 0订阅
synchronized
基本 synchronized,俗称对象锁。java 中互斥和同步都可以采用 synchronized 关键字来完成。 互斥是保证临界区的竞态条件发生,同一时刻只能有一个线程执行临界区代码。 同步是由
自旋锁的介绍,手写一个简单的自旋锁
非自旋锁在获取不到锁的时候会进入阻塞状态,从而进入内核态,当获取到锁的时候需要从内核态恢复,需要线程上下文切换。 (线程被阻塞后便进入内核(Linux)调度状态,这个会导致系统在用户态与内核态之间来回切换,严重影响锁的性能) 1. 如果某个线程持有锁的时间过长,就会导致其它等待…
一篇文章带你解析,乐观锁与悲观锁的优缺点
总是假设最好的情况,每次去读数据的时候都认为别人不会修改,所以不会上锁, 但是在更新的时候会判断一下在此期间有没有其他线程更新该数据, 可以使用版本号机制和CAS算法实现。 乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,…
死磕Java——ReentrantLock
前面说过JMM模型要求的是可见性,原子性和有序性。解决原子性的方法也有多种,例如synchronized同步方法或者同步代码块,也可以使用AtomicInteger原子包装类解决,都知道synchronized加锁是最笨重的解决方法,所里,这里使用的是ReentrantLock…
并发Lock之ReentrantLock实现原理
我们在之前介绍了并发编程的锁机制:synchronized和lock,lock接口的重要实现类是可重入锁ReentrantLock。而上一篇并发Lock之AQS(AbstractQueuedSynchronizer)详解介绍了AQS,谈到ReentrantLock,不得不谈抽象…
面试必备的数据库悲观锁与乐观锁
在上一个章节5分钟带你读懂事务隔离性与隔离级别 的最后,其实我们已经提到了锁的概念。本章节接下来将主要介绍以下数据库悲观锁与乐观锁的相关知识。如有错误还请大家及时指出~ 在并发环境下,如果多个客户端访问同一条数据,此时就会产生数据不一致的问题,如何解决,通过加锁的机制,常见的有…
一文彻底搞懂面试中常问的各种“锁”
锁,顾名思义就是锁住一些资源,当只有我们拿到钥匙的时候,才能操作锁住的资源。在我们的Java,数据库,还有一些分布式的环境中,总是充斥着各种各样的锁让人头疼,例如“公平锁”、“自旋锁”、“读写锁”、“分布式锁”等等。 其实真实的情况是,锁并没有那么多,很多概念只是从不同的功能特…
synchronized四种锁状态的升级
在 Java 语言中,使用 Synchronized 是能够实现线程同步的,即加锁。并且实现的是悲观锁,在操作同步资源的时候直接先加锁。 加锁可以使一段代码在同一时间只有一个线程可以访问,在增加安全性的同时,牺牲掉的是程序的执行性能,所以为了在一定程度上减少获得锁和释放锁带来的…