转载:基于Redis实现分布式锁 ,出处: http://blog.csdn.net/ugg/article/details/41894947背景在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用...
分类:
其他好文 时间:
2015-06-12 19:15:39
阅读次数:
104
NSThread:优点:NSThread 比其他两个轻量级,使用简单缺点:需要自己管理线程的生命周期、线程同步、加锁、睡眠以及唤醒等。线程同步对数据的加锁会有一定的系统开销开启后台执行任务的方法(void)performSelectorInBackground:(SEL)aSelector with...
分类:
编程语言 时间:
2015-06-10 22:15:45
阅读次数:
155
1. 文件管理
1,1 fcntl 函数
(1)F_SETLKW
功能与F_SETLK类似,所不同的是加不上锁并不是返回失败而是等待,直到可以加上该锁为止
(2)F_GETLK
表示试图将第三个参数描述的锁加到第一的参数指定的文件上如果能加上锁但不会去加,而是
将该锁的类型改为F_UNLCK;如果不能加上锁,则将文件中已经存在的锁信息通过第三个参数带出来,
并且将给文件进行加锁的进...
分类:
其他好文 时间:
2015-06-10 08:55:17
阅读次数:
111
Java关键字synchronized详解博客分类:Java综合Java多线程thread互联网制造 synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话要等正在使用这个方法的线程B(或者C ...
分类:
编程语言 时间:
2015-06-08 23:09:46
阅读次数:
254
最近去面试,遇到一个单例模式的问题,学到一些以前没想到的东西,虽然面试失败,不过还是不错的哦。给大家分享下。 php是以进程的方式运行的,我们忽略多线程的问题,不用给属性加锁。常用的单例模式类。 单例模...
分类:
Web程序 时间:
2015-06-06 16:44:43
阅读次数:
124
特点: 将桶分段,并在某个段上加锁,提高并发能力 源码分析: V put(K key, int hash, V value, boolean onlyIfAbsent) { lock(); try { int c = count; if (c++ > threshold) // ensu...
分类:
编程语言 时间:
2015-06-05 13:48:27
阅读次数:
139
CopyOnWriteArrayList原理 首先每次写操作,都将数组copy一份,并赋值给arrays 读操作读不加锁 写操作加锁 ReentrantLock 因为每次写都要copy数组,这是一项繁重的操作,因此 CopyOnWriteArrayList适合读多写少的情况。 add方法的源码如下:...
分类:
编程语言 时间:
2015-06-05 12:15:09
阅读次数:
241
多线程总结 1 //1、NSThread 2 /** 3 优点:NSThread 比其他两个轻量级。 4 缺点:需要自己管理线程的生命周期,线程同步,线程同步时对数据的加锁会有一定的系统开销。 5 cocoa给我提供了两种方法生成线程: 6 1: 7 - (id)initWi...
分类:
移动开发 时间:
2015-06-05 00:19:03
阅读次数:
309
页级:引擎 BDB。表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许行级,,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中...
分类:
数据库 时间:
2015-06-04 11:38:54
阅读次数:
159
NSThread,虽然也可以实现多线程编程,但是需要我们去管理线程的生命周期,还要考虑线程同步、加锁问题,造成一些性能上的开销。我们也可以配合使用NSOperation和NSOperationQueue实现多线程编程,实现步骤大致是这样的:1> 先将需要执行的操作封装到一个NSOperation对象...
分类:
编程语言 时间:
2015-06-03 21:24:30
阅读次数:
108