Mongodb并发与锁机制1、MongoDB使用的锁MongoDB使用的是“readers-writer”锁,可以支持并发但有很大的局限性,当一个读锁存在,许多读操作可以使用这把锁,然而,当一个写锁的存在,一个单一的写操作会exclusively持有该锁,同时其它读,写操作不能使用共享这个锁;举个例子,假..
分类:
数据库 时间:
2015-07-27 16:42:44
阅读次数:
186
本文首先讲解了单例模式的基本概念,通过讲故事的方式带领读者进入这篇文章,接着通过文字加代码的方式从最基本的单例模式讲起,逐渐进入到延迟加载、锁机制、静态类等单例模式实现方法。通过本文读者基本可以掌握单例模式的应用。...
分类:
其他好文 时间:
2015-07-24 22:43:34
阅读次数:
170
原文链接:http://coolxing.iteye.com/blog/1236909两种互斥锁机制:1、synchronized2、ReentrantLockReentrantLock是jdk5的新特性,采用ReentrantLock可以完全替代替换synchronized传统的锁机制,而且采用R...
分类:
编程语言 时间:
2015-07-20 16:10:12
阅读次数:
137
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Opt...
分类:
其他好文 时间:
2015-07-16 02:06:56
阅读次数:
152
转自:http://blog.csdn.net/chen77716/article/details/6618779,并加上少量自己的理解目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不...
分类:
其他好文 时间:
2015-07-11 18:13:44
阅读次数:
107
线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。
1、互斥锁(mutex)
通过锁机制实现线程间的同步。同一时刻只允许一个线程执行一个关键部分的代码。
int pthread_mutex_init(pthread_mutex_t *mutex,const pthre...
分类:
编程语言 时间:
2015-07-11 09:09:12
阅读次数:
151
【为什么要锁】 数据库是一个多用户使用的共享资源,比如一个用户表t_user,两个浏览器前面的人登录了同个一个账号,把电话号码改了。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性(脏读,不可重...
分类:
数据库 时间:
2015-07-09 19:17:46
阅读次数:
156
乐观锁思路 这个时候,我们就可以讨论一下“乐观锁”的思路了。乐观锁,是相对于“悲观锁”采用更为宽松的加锁机制,大都是采用带版本号(Version)更新。实现就是,这个数据所有请求都有资格去修改,但会获得一个该数据的版本号,只有版本号符合的才能更新成功,其他的返回抢购失败。这样的话,我们就不需要考虑....
分类:
其他好文 时间:
2015-07-07 19:23:32
阅读次数:
135
事务处理和并发性1.1 基础知识和相关概念1 )全部的表类型都可以使用锁,但是只有 InnoDB 和 BDB 才有内置的事务功能。2 )使用 begin 开始事务,使用 commit 结束事务,中间可以使用 rollback 回滚事务。3 )在默认情况下, InnoDB 表支持一致读。4 )如果多个...
分类:
数据库 时间:
2015-07-07 10:57:19
阅读次数:
154
在JDK1.5之前,也就是J.U.C加入JDK之前,Java是依靠synchronized关键字(JVM底层提供)来维护协调对共享字段的访问,保证对这些变量的独占访问权,并且以后其他线程忽的该锁时,将可以看到对这些变量进行的更改(可见性,互斥性)。 锁机制的问题: 锁问题不可回避的,就是上下文...
分类:
其他好文 时间:
2015-07-06 19:39:49
阅读次数:
88