一、线程与RunLoop 二、实现方案 pThread NSThread GCD NSOperation 在GCD的基础上封装,特性:操作依赖、操作最大并发数(并非线程数量)、 三、线程同步 参考①里面提到的两种方式一种是使用NSLock同步锁,另一种是使用@synchronized代码块。 四、线
分类:
移动开发 时间:
2016-01-31 13:30:56
阅读次数:
207
参考自:http://perpendiculo.us/2009/09/synchronized-nslock-pthread-osspinlock-showdown-done-right/,尊重原创!苹果多线程 锁的文档https://developer.apple.com/library/ios/...
分类:
移动开发 时间:
2016-01-22 13:45:25
阅读次数:
275
iOS并发编程--8种加锁方式及比较1. @synchronized 关键字加锁2. NSLock 对象锁3. NSCondition4. NSConditionLock 条件锁5. NSRecursiveLock 递归锁6. pthread_mutex 互斥锁(C语言)7. dispatch_se...
分类:
其他好文 时间:
2015-12-21 12:10:11
阅读次数:
177
NSLock (0)为什么上锁 1.atomic(原子操作)是指不会被线程机制打断,这种操作一旦开始就运行到结束,中间不会有任何的切换 2.我们可以通过(NSLock)使这段代码成为原子操作 3.使用线程锁,不是服务于线程,而是服务于代码,如果我们想对一段代码进行原子从操作的时候(数据库的写入).....
分类:
移动开发 时间:
2015-11-26 09:24:05
阅读次数:
181
#import?"ViewController.h"
@interface?ViewController?()
{
????NSInteger?_cnt;
????NSLock?*_lock;
}
@end
@implementation?ViewController
-?(void)viewDidLoad?{
????[super?viewD...
分类:
移动开发 时间:
2015-11-12 16:20:12
阅读次数:
287
1 #import "AppDelegate.h" 2 3 @interface AppDelegate () 4 5 @end 6 7 @implementation AppDelegate 8 9 -(void)dealloc{10 11 [_window releas...
分类:
其他好文 时间:
2015-10-14 23:37:41
阅读次数:
169
多线程同步加锁主要方式有3种:NSLock(普通锁)、NSCondition(状态锁)、synchronized同步代码块还有少用的NSRecursiveLock(递归锁)、NSConditionLock(条件锁)、NSDistributedLock(分布锁)。区别:NSLock和NSConditi...
分类:
移动开发 时间:
2015-10-06 19:29:05
阅读次数:
207
1.当多个线程 同时抢夺一个公共资源时,为了防止这个公共资源被同时修改,需要对资源加锁 2.当一个线程对资源加锁之后,只有当前线程可以修改资源内容,其他线程不可以修改.只有在当前线程修改完毕,把锁打开,其他线程才能使用公共资源实现上述方法的又两种(1).锁NSLock * _Lock;(2).同步块...
分类:
编程语言 时间:
2015-09-28 22:19:12
阅读次数:
205
#import "AppDelegate.h"@interface AppDelegate (){ NSInteger _totalTickests;}@property (nonatomic, retain) NSLock *lock;@end@implementation AppDeleg...
分类:
移动开发 时间:
2015-09-17 21:26:00
阅读次数:
201
#import "DBManager.h"#import "FMDatabase.h"@implementation DBManager{ FMDatabase *_fmdb; NSLock *_lock;}+(DBManager *)shareManager{ static DBManager *...
分类:
数据库 时间:
2015-09-07 00:24:11
阅读次数:
329