innodb 间隙锁, 参考MySQLInnoDB锁机制(二)针对于辅助索引,也称范围索引间隙锁只会出现在辅助索引上,唯一索引和主键索引是没有间隙锁。间隙锁(无论是S还是X)只会阻塞insert操作但不清楚什么时候会用 共享锁CREATE TABLE tb1 ( id int(11) NOT NU....
分类:
数据库 时间:
2015-08-20 18:30:00
阅读次数:
177
有个网友问我乐观锁和悲观锁的相关问题,于是就来阐述一下这个问题。首先说乐观锁,它是Pessimistic Lock的简写,也就是所谓的悲观锁。它是每次取数据的时候都会认为别人会修改它的数据,因此它是在每次取数据之前都会进行加锁操作,这样别人拿数据的时候就必须等待直到它释放锁。其实我们的关系型数据库中就用到了很多这种锁机制,比如行锁、表锁、写锁等等,都是在操作之前首先加一个锁。
...
分类:
其他好文 时间:
2015-08-19 20:32:54
阅读次数:
186
临界资源即那些一次只能被一个线程访问的资源,典型例子就是打印机,它一次只能被一个程序用来执行打印功能,因为不能多个线程同时操作,而访问这部分资源的代码通常称之为临界区。1. 锁机制threading的Lock类,用该类的acquire函数进行加锁,用realease函数进行解锁import thre...
分类:
编程语言 时间:
2015-08-17 18:56:02
阅读次数:
198
TLS(Thread Local Storage)通过分配更多内存来解决多线程对临界资源访问的互斥问题,即每个线程均自己的临界资源对象, 这样也就不会发生访问冲突,也不需要锁机制控制,比较典型的以空间换时间的策略。
分类:
其他好文 时间:
2015-08-16 00:26:31
阅读次数:
395
我们知道mysql在以前,存储引擎默认是MyISAM,但是随着对事务和并发的要求越来越高,便引入了InnoDB引擎,它具有支持事务安全等一系列特性。
InnoDB锁模式
InnoDB实现了两种类型的行锁。
共享锁(S):允许一个事务去读一行,阻止其他事务获得相同的数据集的排他锁。
排他锁(X):允许获得排他锁的事务更新数据,但是组织其他事务获得相同数据集的共享锁和排他锁。
可...
分类:
数据库 时间:
2015-08-09 12:35:57
阅读次数:
237
说到锁机制之前,先来看看Mysql的存储引擎,毕竟不同的引擎的锁机制也随着不同。
三类常见引擎:
MyIsam :不支持事务,不支持外键,所以访问速度快。锁机制是表锁,支持全文索引
InnoDB :支持事务、支持外键,所以对比MyISAM,InnoDB的处理效率差一些,并要占更多的磁盘空间保留数据和索引。锁机制是行锁,不支持全文索引
Memory:数据是存放在内存中的,默认哈希...
分类:
数据库 时间:
2015-08-09 09:33:03
阅读次数:
197
这两天在处理一个相应问题,一个系统希望实行命令互斥,举个例子就是如果我打开了两个命令窗口,分别在这两个窗口中运行两种操作,这些操作是互斥的,即命令2要等待命令1执行完成后再执行。这看似可以用简单的锁机制来实现,但实际处理时还要判断1号窗口的进程状态,用户2不会无线等待用户1的命令执行,会去系统中查看...
分类:
系统相关 时间:
2015-08-07 10:50:14
阅读次数:
176
锁机制:是数据库为了保证数据的一致性而使各种共享资源在被并发访问访问变得有序所设计的一种规则,用来保证在当前用户进行操作数据的时候其他的用户不能对同一数据进行任何操作。 Hibernate是一个持久层框架,他的操作就是用来存取数据库中的数据,为了保证数据的一致性,hibernate提供了自己的...
分类:
Web程序 时间:
2015-08-06 00:11:20
阅读次数:
197
多线程一个进程在同一时刻只能做一件事,而多个线程却可以同时执行,每个线程处理各自独立的任务。多线程有很多好处:
简化处理异步事件的代码
实现内存和文件描述符的共享
改善程序的吞吐量
改善响应时间
互斥锁
互斥锁:互斥锁通过锁机制来实现线程间的同步,在同一时刻通常只允许一个关键部分的代码
当多个线程控制相同的内存时,对于读写操作的时间差距就有可能会导致数据的不同步,下图就很清晰的说明了这种情况:...
分类:
编程语言 时间:
2015-08-04 13:38:20
阅读次数:
173
目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU...
分类:
编程语言 时间:
2015-07-29 12:13:06
阅读次数:
358