本文共 770 字,大约阅读时间需要 2 分钟。
NSThread是轻量级的多线程开发,使用起来也并不复杂,但是使用NSThread需要自己管理线程生命周期。
可以使用对象方法:
+ (void)detachNewThreadSelector:(SEL)selector toTarget:(id)target withObject:(id)argument
直接将操作添加到线程中并启动。
也可以使用对象方法:
- (instancetype)initWithTarget:(id)target selector:(SEL)selector object:(id)argument
创建一个线程对象,然后调用start方法启动线程。
线程状态分为isExecuting(正在执行)、isFinished(已经完成)、isCancellled(已经取消)三种
为了简化多线程开发过程,苹果官方对NSObject进行分类扩展(本质还是创建NSThread),对于简单的多线程操作可以直接使用这些扩展方法。
- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg:在后台执行一个操作,本质就是重新创建一个线程执行当前方法。
- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(id)arg waitUntilDone:(BOOL)wait:在指定的线程上执行一个方法,需要用户创建一个线程对象。
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait:在主线程上执行一个方法。转载地址:http://ujsni.baihongyu.com/