MVCC 隔离级别 幻读 死锁 一个简单sql的加锁分析 delete from T1 where id=5 1. id主键 RC 2. id唯一索引 RC 3. id非唯一索引 RC 4. id无索引 RC 5. id主键 RR 6. id唯一索引 RR 7. id非唯一索引 RR 8. id无索 ...
分类:
数据库 时间:
2016-08-27 22:06:36
阅读次数:
183
饿汉式单例类 登记式模式 内部类只有在外部类被调用才加载,产生SINGLETON实例,又不用加锁,此模式有上述俩模式的优点,屏蔽了他们的缺点,是最好的单例模式。 单例类的特点: 1、单例类确保自己只有一个实例 2、单例类必须自己创建自己的实例 3、单例类必须为其他对象提供唯一的实例。 单例类的优点: ...
分类:
其他好文 时间:
2016-08-26 15:21:34
阅读次数:
213
读写锁:. 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般 对MyISAM表的读 ...
分类:
数据库 时间:
2016-08-24 19:10:57
阅读次数:
221
AtomicInteger等对象出现的目的主要是为了解决在多线程环境下变量计数的问题,例如常用的i++,i--操作,它们不是线程安全的,AtomicInteger引入后,就不必在进行i++和i--操作时,进行加锁操作,在我们日常工作中,有很多业务场景需要在多线程环境下进行变量的计数:订单数统计、访问 ...
分类:
其他好文 时间:
2016-08-23 01:32:19
阅读次数:
178
5个多月前,整个互联网都被“Heartbleed”这个OpenSSL 软件的安全漏洞所震惊。事后,大家都在疑惑,本来采用SSL证书是为了数据传输的安全性,是为了更安全,可是结果呢? 不过,这个问题早已经被解决了,受影响的用户更新OpenSSL软件即可;请千万不要听信有些砖家的挖坑建议:不使用http ...
分类:
Web程序 时间:
2016-08-22 18:23:37
阅读次数:
218
同步静态方法 synchronized还可以应用在静态方法上,如果这么写,则代表的是对当前.java文件对应的Class类加锁。看一下例子,注意一下printC()并不是一个静态方法: 从运行结果来,对printC()方法(非静态)的调用和对printA()方法、printB()方法(静态)的调用时 ...
分类:
编程语言 时间:
2016-08-21 21:12:47
阅读次数:
184
最近遇到别人问的一个问题,如下: 高并发下修改商品库存,加锁会导致性能问题,怎样实现在不加锁的情况下实现高性能修改库存?我的答案:1、一般对于并发处理都需要加锁,否则会导致共享变量不可见问题,尽量将锁的力度变小2、如果确认不能或不想加锁,则做串行化处理,我给的解决方案是消息队列3、http://ww... ...
分类:
其他好文 时间:
2016-08-19 19:15:08
阅读次数:
803
self:类似JAVA中的this指针,是影藏参数,指向当前调用方法的类 super:调用父类的方法 if(self=[super init]),是一种通用写法,赋值并测零是为了防止超类在初始化过程中发生改变,返回不同对象;同时实现父类相关资源的初始化。 atomic:原子访问,对属性赋值时加锁。设 ...
分类:
移动开发 时间:
2016-08-19 13:06:22
阅读次数:
170
CopyOnWriteArrayList, 内部通过锁+volatile修饰的数组实现的 是一种线程安全的ArrayList,写操作时会copy一个新的内部数组出来替换掉旧 的数组。遍历操作不用加锁了,但是遍历的数组不会感知即时变更,只是一个快照。,读写都 加锁的实现方式要高效一些。CopyOnWr ...
分类:
其他好文 时间:
2016-08-19 00:53:42
阅读次数:
167
代码有点乱 但是我不想整理 1 // AddBoxDlg.cpp : 实现文件 2 // 3 4 #include "stdafx.h" 5 #include "AddBox.h" 6 #include "AddBoxDlg.h" 7 #include "afxdialogex.h" 8 #incl ...
分类:
其他好文 时间:
2016-08-19 00:43:30
阅读次数:
229