搜索
您的当前位置:首页正文

(七)iOS开发之多线程—多线程之间通信

来源:哗拓教育

一.线程间通信

1.什么叫做线程间通信

在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信。

2.线程间通信的体现

1个线程传递数据给另1个线程

在1个线程中执行完特定任务后,转到另1个线程继续执行任务

二.线程间通信示例图片下载图解:


三.线程间通信方式

1.NSThread

线程间通信常用方法

- (void)performSelectorOnMainThread:(SEL)aSelectorwithObject:(id)argwaitUntilDone:(BOOL)wait;

- (void)performSelector:(SEL)aSelectoronThread:(NSThread*)thrwithObject:(id)argwaitUntilDone:(BOOL)wait;

Doome:

2.GCD

从子线程回到主线程

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{

//图片的网络路径

//加载图片

NSData*data = [NSDatadataWithContentsOfURL:url];

//生成图片

UIImage*image = [UIImageimageWithData:data];

//回到主线程

dispatch_async(dispatch_get_main_queue(), ^{

self.imageView.image= image;

});

});

3.NSOperation

[[[NSOperationQueuealloc]init]addOperationWithBlock:^{

//图片的网络路径

//加载图片

NSData*data = [NSDatadataWithContentsOfURL:url];

//生成图片

UIImage*image = [UIImageimageWithData:data];

//回到主线程

[[NSOperationQueuemainQueue]addOperationWithBlock:^{

self.imageView.image= image;

}];

}];

4.利用NSPort

Top