Java 5中引入了新的锁机制——java.util.concurrent.locks中的显式的互斥锁:Lock接口,它提供了比synchronized更加广泛的锁定操作。Lock接口有3个实现它的类:ReentrantLock、ReetrantReadWriteLock.ReadLock和Reet...
分类:
编程语言 时间:
2015-07-04 16:43:07
阅读次数:
240
作者:倪煜 InnoDB锁机制常常困扰大家,不同的条件下往往表现出不同的锁竞争,在实际工作中经常要分析各种锁超时、死锁的问题。本文通过不同条件下的实验,利用InnoDB系统给出的各种信息,分析了锁的工作机制。通过本文可以帮助大家了解InnoDB锁的基本原理,常见的冲突、死锁,以及对InnoDB...
分类:
数据库 时间:
2015-06-30 21:56:57
阅读次数:
142
转载自http://jiangzhengjun.iteye.com/blog/517677文件锁JDK 1.4引入了文件加锁机制,允许我们同步访问一个共享文件,不过,竞争同一文件的两个线程有可能在不同的java虚拟机上,或者一个是java线程,另一个是操作系统中其他的某个线程,但文件锁对其他线程或其...
分类:
其他好文 时间:
2015-06-30 01:18:24
阅读次数:
251
前面的章节主要谈谈原子操作,至于与原子操作一些相关的问题或者说陷阱就放到最后的总结篇来整体说明。从这一章开始花少量的篇幅谈谈锁机制。上一个章节中谈到了锁机制,并且针对于原子操作谈了一些相关的概念和设计思想。接下来的文章中,尽可能的深入研究锁机制,并且理解里面的原理和实际应用场合。尽管synchron...
分类:
编程语言 时间:
2015-06-29 19:48:40
阅读次数:
158
在看ConcurrentHashMap 源码的时候看到lock这个锁机制,不明白它和Synchronized的区别,查了一些资料记录下来,在Lock的文档中,对Lock的解释是:Lock实现比synchronized 提供了更多额外的锁操作,它有更灵活的结构,可以支持不同的属性,可以支持多个相关条件的对象。那下边看一下Lock可以提供哪些比synchronized 额外的操作,也就是解决synch...
分类:
编程语言 时间:
2015-06-27 18:33:30
阅读次数:
181
一.多线程安全方案1.用同步锁,但是很影响性能2.用NSLock,也是锁机制3.用派发队列,在并行队列里面,结合dispatch_barrier,保证并发队列的数据操作是独立执行的。—-参考《52个高效cocoa编程方法》总结:第三种方式最优,但是,很少用。当然也可以用串行队列,但是并行队列效率更好。还有,对于单例的写法:最好用 dispatch_once.二.图片圆角的处理1.用 layer ,但...
分类:
移动开发 时间:
2015-06-27 09:59:14
阅读次数:
137
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据 ==================...
分类:
编程语言 时间:
2015-06-25 12:05:15
阅读次数:
126
上一篇博客中 :java多线程、并发系列之 (synchronized)同步与加锁机制。介绍了java中Synchronized和简单的加锁机制,在加锁的模块中介绍了 轮询锁和定时锁,简单回顾下
轮询锁:利用tryLock来获取两个锁,如果不能同时获得,那么回退并重新尝试。
定时锁:索取锁的时候可以设定一个超时时间,如果超过这个时间还没索取到锁,则不会继续堵塞而是放...
分类:
编程语言 时间:
2015-06-23 23:15:55
阅读次数:
358
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。
乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人...
分类:
其他好文 时间:
2015-06-19 20:22:15
阅读次数:
139