美文网首页
线程间通信怎么实现

线程间通信怎么实现

作者: tdwydan1 | 来源:发表于2016-09-01 09:51 被阅读0次

一、简单说明

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

线程间通信的体现

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

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

- (void)settingImage:(UIImage *)image

{

     self.iconView.image = image;

}

线程间通信常用方法

1.让选择的方法到子线程去执行,给该方法传递image参数

[self performSelectorInBackground:@selector(settingImage:) withObject:image];

2.让选择的方法到主线程去执行,给该方法传递image参数,不等待这个方法完成

[self performSelectorOnMainThread:@selector(settingImage:) withObject:image waitUntilDone:NO];

3.让选择的方法到子线程去执行,给该方法传递image参数,不等待方法完成

[self performSelector:@selector(settingImage:) onThread:[NSThread new] withObject:image waitUntilDone:NO];


实用代码:

-(void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event

{

// 在子线程中调用download方法下载图片

[selfperformSelectorInBackground:@selector(download)withObject:nil];

}

-(void)download

{

//1.根据URL下载图片

//从网络中下载图片

NSURL*urlstr=[NSURLURLWithString:@"fdsf"];

//把图片转换为二进制的数据

NSData*data=[NSDatadataWithContentsOfURL:urlstr];//这一行操作会比较耗时

//把数据转换成图片

UIImage*image=[UIImageimageWithData:data];

//2.回到主线程中设置图片

//第一种方式

//    [self performSelectorOnMainThread:@selector(settingImage:) withObject:image waitUntilDone:NO];

//第二种方式

//    [self.imageView performSelector:@selector(setImage:) onThread:[NSThread mainThread] withObject:image waitUntilDone:NO];

//第三种方式

[self.iconViewperformSelectorOnMainThread:@selector(setImage:)withObject:imagewaitUntilDone:NO];

}

//设置显示图片

//-(void)settingImage:(UIImage *)image

//{

//    self.iconView.image=image;

//}

相关文章

  • 线程间通信怎么实现

    一、简单说明 线程间通信:在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信 线程间通信的体现 1...

  • iOS进程间通信

    线程间通信 :通过performSelector系列的方法 可以实现 各种线程间的通信(通信 :调用与传参)进程间...

  • 多线程 | 线程通信

    1. while实现线程通信 //线程二需要while轮询 才能实现线程间通信,对cup消耗很大//线程主动读取 ...

  • Java多线程(2)

    Java多线程(2) 线程间的通信 线程间的通信又称为进程内通信,多个线程实现互斥访问共享资源时会互相发送信号或等...

  • Handler是如何实现线程间通信的?

    Handler是如何实现线程间通信的?

  • JUC中线程之间得通信

    使用synchronized实现线程间通信,线程间通信:1、生产者+消费者2、通知等待唤醒机制.多线程编程模板:1...

  • Android线程间通信

    android线程间通信的四种实现方式 通过Handler机制 子线程与子线程之间通信 unOnUiThread方...

  • java面试

    宝宝点击这里寻找部分答案 自我介绍 java基础 1、线程 进程和线程的区别线程间通信方法,Java如何实现怎么用...

  • iOS线程间通信 -NSOperation 篇

    线程间实现通信,NSOperation的代码: - (void)touchesBegan:(NSSet *)to...

  • ios 多线程的故事4

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

网友评论

      本文标题:线程间通信怎么实现

      本文链接:https://www.haomeiwen.com/subject/vvccettx.html