锁(lock)机制是所有数据库都具有的一个关键特性,用于管理对共享资源的并发访问,数据库使用锁是为了支持对共享资源进行并发访问,同时提供数据完整性和一致性。Oracle可以通过行级锁对表数据进行锁定,...
分类:
数据库 时间:
2016-12-06 14:39:08
阅读次数:
256
Mysql InnoDB行锁实现方式 InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的。InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁! 在实际应 ...
分类:
数据库 时间:
2016-12-05 22:19:46
阅读次数:
263
进程和线程的基础知识 CPU执行代码是顺序执行, 单核CPU通过让任务交替执行, "模拟"除了多任务并发执行. 真正的多任务并发, 是在多核CPU上, 每个CPU负责执行一个任务. 但实际任务数量远多于CPU核心数量, 所以最终还是操作系统把多任务轮流调度到不同的核心上执行. 进程/线程和物理内存( ...
分类:
编程语言 时间:
2016-12-05 20:09:55
阅读次数:
245
http://www.csdn.net/article/2014-11-28/2822858 1. 单点帐号验证,不用读,而是用写入,Redis,看是否加watch 2. 抢宝的最终购买冲突。包装称“乐观锁”。乐观锁有版本号。乐观锁加锁失败,回滚,或者滚动到下一期。 乐观锁,例如Redis中的wat ...
分类:
其他好文 时间:
2016-12-05 19:09:46
阅读次数:
194
wait notify 几个注意点: wait 与 notify/notifyAll 方法必须在同步代码块中使用,即要先对调用对象加锁。 当线程执行wait()时,会把当前的锁释放,然后让出CPU,进入等待状态。 当执行notify/notifyAll方法时,会唤醒一个处于等待该 对象锁 的线程,然 ...
分类:
编程语言 时间:
2016-12-04 17:30:46
阅读次数:
182
多线程编程中,需要对共享变量进行加锁。但是频繁地加锁,会对程序效率有很大影响。在某些读多写少的场景下,多个线程进行读数据时,如果都加互斥锁,这显然是不必须的。于是读写锁便应运而生。 读写锁的加锁规则: 1 如果没有加写锁时,那么多个线程可以同时加读锁;如果有加写锁时,不可以加读锁 2 不管是加了读锁 ...
分类:
其他好文 时间:
2016-12-03 18:19:37
阅读次数:
241
1 锁方法的使用: final ServletContext ctx = request.getServletContext();这个地方变量要定义成常量; new Thread(){//写成了内部类 public void run() { AddCount.add(ctx); }; }.start ...
分类:
编程语言 时间:
2016-12-03 12:13:19
阅读次数:
258
Jedis常用操作 1.测试连通性 控制台打印 PONG 2. 5+1操作 3.事务提交 日常: 加锁: 如果在事务执行期间有进程修改了watch 的key ,则回滚事务 修改程序 打开注释 Thread.sleep(7000); 在期间 修改balance的值 则程序运行结果为: modify m ...
分类:
编程语言 时间:
2016-12-02 02:33:25
阅读次数:
258
什么是单例模式?>是开发设计模式(共23种)中的1种>它可以保证在程序运行过程,一个类只有一个实例(一个对象),而且该实例易于供外界访问,从而方便地控制了实例个数,并节约系统资源>使用场合:在整个应用程序中,共享一份资源(这份资源只需要创建初始化1次) 单例模式的基本实现1.懒汉模式 // 1.在该 ...
分类:
移动开发 时间:
2016-11-30 22:09:47
阅读次数:
192
简介 没有切换开销。因为子程序切换不是线程切换,而是由程序自身控制,没有线程切换的开销,因此执行效率高, 不需要锁机制。因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多 Python对协程的支持还非常有限,用在generator中 ...
分类:
编程语言 时间:
2016-11-29 06:35:09
阅读次数:
194