IOS多线程

来源:互联网 发布:淘宝手机端像素 编辑:程序博客网 时间:2024/05/05 23:07

IOS多线程主要有三种方法:NSThread 、NSOperation 、 GCD

1.NSThread的使用

[NSThread detachNewThreadSelector:@selector(threadGo:)] toTarget:self withObject:nil];

或者 NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(threadGoto:) object:nil]; [thread start];

 

2.NSOperation的使用

1.非并发执行:  只需要重载main方法

2.并发执行:  并发需要重载四个方法

执行任务主函数 - (void)start

是否允许并发,返回yse,允许,返回NO,不允许 默认NO

- (BOOL)isConcurrent

- (BOOL)isExecuting

是否已经完成 ,必须重载

- (BOOL)isFinished

 

使用NSOperation,异步加载网络图片

NSOperation相当于java里的runnable接口,就和java中一样使用多线程时需要实现这个runnable接口。在object-c中好像叫协议,觉得就是接口,差不多,只不过协议使用optional等关键字可以扩展一些功能,如,可以不必实现全部接口中方法等。

1、先写一个.h头文件进行接口定义:


2、对MyTask类进行实现,initWithImageURL的实现越看越像构造函数吧,就那么看待它吧!main方法是必须要实现的方法,是子线程的方法体,将图片数据进行加载后封装到NSDictionary对象中,NSDictionary和java中的map类似,最后调用performSelectorOnMainThread方法通知主线程,加载图片image。


3、在viewdidload中,初始化线程,并start。

4、最后取出数据,加载图片。


 

0 0
原创粉丝点击