2013年8月15日

iOS多线程的初步研究(二)-- 锁

摘要: 谈到线程同步,一般指如何对线程间共享数据的同步读写,如何避免混乱的读写结果。一个基本的解决办法就是使用锁(LOCK)。iOS提供多种同步锁的类和方法,这里介绍下基本用法。1. NSLock:最基本的同步锁,使用lock来获得锁,unlock释放锁。如果其它线程已经使用lock,这时lock方法会阻塞当前线程,直到其它线程调用unlock释放锁为止。NSLock锁一般用于简单的同步算法。比如生产者线程产生数据(produce),消费线程显示数据(consume),可以这样实现:- (void)produce{ while (1) { [theLock lock]; // crea... 阅读全文

posted @ 2013-08-15 21:09 技术内幕 阅读(4220) 评论(0) 推荐(3) 编辑

iOS多线程的初步研究(一)-- NSThread

摘要: 对于多线程的开发,iOS系统提供了多种不同的接口,先谈谈iOS多线程最基础方面的使用。产生线程的方式姑且分两类,一类是显式调用,另一类是隐式调用。一、显示调用的类为NSThread。一般构造NSThread的线程对象可通过两种方式:1. 初始化线程主方法:[NSThread detachNewThreadSelector:@selector(run:) toTarget:target withObject:obj];//类方法或NSThread *newThread = [[NSThread alloc] initWithTarget:target selector:@selector(run 阅读全文

posted @ 2013-08-15 15:16 技术内幕 阅读(11695) 评论(1) 推荐(3) 编辑

iOS多线程的初步研究(四)-- NSTimer

摘要: 理解run loop后,才能彻底理解NSTimer的实现原理,也就是说NSTimer实际上依赖run loop实现的。先看看NSTimer的两个常用方法:+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo; //生成timer但不执行+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti targe 阅读全文

posted @ 2013-08-15 09:29 技术内幕 阅读(3506) 评论(0) 推荐(0) 编辑

导航