码迷,mamicode.com
首页 >  
搜索关键字:加锁    ( 2232个结果
CopyOnWriteArrayList 源码---JDK1.8
CopyOnWriteArrayList:通过copy一份以前元素的快照,是一种读写分离的并发策略,我们也可以称这种容器为"写时复制器"。该集合适合读多写少的场景(读没有加锁,其他更新操作均有加锁)。 元素添加,上锁,线程安全的,每次只允许一个线程对该集合修改。 在指定位置上添加元素: 更新指定位置 ...
分类:其他好文   时间:2017-12-05 11:58:53    阅读次数:191
并发容器之写时拷贝的 List 和 Set
对于一个对象来说,我们为了保证它的并发性,通常会选择使用声明式加锁方式交由我们的 Java 虚拟机来完成自动的加锁和释放锁的操作,例如我们的 synchronized。也会选择使用显式锁机制来主动的控制加锁和释放锁的操作,例如我们的 ReentrantLock。但是对于容器这种经常发生读写操作的类型 ...
分类:其他好文   时间:2017-12-02 13:05:23    阅读次数:136
Java多线程之并发协作生产者消费者设计模式
一、两个线程一个生产者一个消费者 需求情景 两个线程,一个负责生产,一个负责消费,生产者生产一个,消费者消费一个。 涉及问题 同步问题:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用标记或加锁机制。 wait() / nofity() 方法是基类Object的两个方法,也就意味着 ...
分类:编程语言   时间:2017-11-30 23:42:32    阅读次数:397
MSSQL-并发控制-2-Isolation
如果转载,请注明博文来源: www.cnblogs.com/xinysu/ ,版权归 博客园 苏家小萝卜 所有。望各位支持! MySQL通过MVCC和锁来实现并发控制,在4个隔离级别中,读写数据方式及加锁方式有所不同,以满足不同的业务需求。 而在MSSQL中,也是通过锁和MVCC的行版本来实现并发控 ...
分类:数据库   时间:2017-11-27 11:13:06    阅读次数:205
Mysql并发时经典常见的死锁原因及解决方法
1. mysql都有什么锁 MySQL有三种锁的级别:页级、表级、行级。 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁 ...
分类:数据库   时间:2017-11-25 13:07:33    阅读次数:225
我理解的MVCC内部实现原理
MySQL InnoDB存储引擎,实现的是基于多版本的并发控制协议——MVCC (Multi-Version Concurrency Control) (注:与MVCC相对的,是基于锁的并发控制,Lock-Based Concurrency Control)。MVCC最大的好处,相信也是耳熟能详:读 ...
分类:Web程序   时间:2017-11-22 13:10:49    阅读次数:245
事务4.3-事务与锁(锁)
数据库和操作系统一样,是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并 发控制的一个非常重要的技术。在实际应用中经常会遇到的与锁相关的异常情况,当两个事 ...
分类:其他好文   时间:2017-11-17 19:56:05    阅读次数:137
MySQL--REPEATABLE-READ隔离级别下读取到的“重复数据”
在MySQL中,使用MVCC来实现REPEATABLE-READ隔离级别,由于SELECT操作不会对数据加锁,其他回话可以修改当前回话所读取过的数据而不会被阻塞,因此读写不冲突。 在MVCC并发控制中,读操作可以分成两类:快照读 (snapshot read)与当前读 (current read)。 ...
分类:数据库   时间:2017-11-17 00:00:25    阅读次数:286
互斥锁与进程间通信
一、互斥锁 进程之间数据隔离,但是共享一套文件系统,因而可以通过文件来实现进程直接的通信,但问题是必须自己加锁处理 注意:加锁的目的是为了保证多个进程修改同一块数据时,同一时间只能有一个修改,即串行的修改,没错,速度是慢了,牺牲了速度而保证了数据安全。 1、上厕所 先举个通俗易懂的例子,家里的厕所, ...
分类:系统相关   时间:2017-11-14 14:18:41    阅读次数:299
Java-Lock简介
1. 为什么会有Lock的出现 JDK5之前,我们一般都是通过synchronized来进行加锁操作,但synchronized是一种悲观锁,如果这个获取到锁的线程被阻塞了,但却没有释放锁,其他线程将只能一直无限期的等待着。而Lock可以实现其他线程只等待一定的时间或者能够响应中断。 又比如,当有多 ...
分类:编程语言   时间:2017-11-12 17:27:33    阅读次数:165
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!