iOS 开发 多线程详解之NSThread线程通信的操作与控制
2016-11-24 00:08
603 查看
线程间通信
线程在运行过程中,可能需要与其它线程进行通信。我们可以使用 NSObject 中的一些方法: 在应用程序主线程中做事情:
在指定线程中做事情:
在当前线程中做事情:
取消发送给当前线程的某个消息
线程间通信
NSThread线程键通信
GCD线程键通信
线程在运行过程中,可能需要与其它线程进行通信。我们可以使用 NSObject 中的一些方法: 在应用程序主线程中做事情:
performSelectorOnMainThread:withObject:waitUntilDone: performSelectorOnMainThread:withObject:waitUntilDone:modes:
在指定线程中做事情:
performSelector:onThread:withObject:waitUntilDone: performSelector:onThread:withObject:waitUntilDone:modes:
在当前线程中做事情:
performSelector:withObject:afterDelay: performSelector:withObject:afterDelay:inModes:
取消发送给当前线程的某个消息
cancelPreviousPerformRequestsWithTarget: cancelPreviousPerformRequestsWithTarget:selector:object:
线程间通信
NSThread线程键通信
- (void)viewDidLoad { [super viewDidLoad]; [self setUpUI]; // 开启新线程异步下载图片 [self performSelectorInBackground:@selector(downloadImageData) withObject:nil]; }
- (void)downloadImageData { // 图片资源地址 // 回到主线程更新UI // waitUntilDone:是否等待主线程执行结束再执行"下一行代码",一般设置成NO,不用等待 [self performSelectorOnMainThread:@selector(setupImageViewWithImage:) withObject:image waitUntilDone:NO]; // 测试 waitUntilDone: NSLog(@"下一行代码"); }
GCD线程键通信
/// 线程间通信 - (void)gcdDemo3 { dispatch_async(dispatch_get_global_queue(0, 0), ^{ NSLog(@"下载中... %@",[NSThread currentThread]); dispatch_async(dispatch_get_main_queue(), ^{ NSLog(@"下载完成 %@",[NSThread currentThread]); }); }); }
相关文章推荐
- iOS 开发 多线程详解之NSThread异步线程下载网络图片
- iOS开发之多线程(NSThread创建线程)
- iOS 开发 多线程详解之线程生命周期控制
- iOS多线程_05_线程间通信NSThread/GCD
- iOS-多线程(NSThread-线程之间的通信)
- iOS GCD NSOperation NSThread等多线程各种举例详解
- IOS-线程操作之NSThread/NSOperation/GCD
- iOS开发 - 多线程之NSThread
- ios NSThread 线程锁,多线程下载图片
- iOS开发—iOS多线程编程之NSThread的使用
- iOS 【Multithreading-线程间通信(NSOperation)/最大并发数/操作依赖/NSOperation优先级】
- iOS 开发 多线程详解之线程安全(资源共享)
- iOS GCD NSOperation NSThread等多线程各种举例详解
- iOS开发之多线程(线程间的通信)
- IOS线程数据篇3之多线程:NSThread NSOperation GCD(二)
- iOS多线程开发--NSThread NSOperation GCD
- iOS多线程学习---控制线程通信及线程使用的总结
- IOS线程数据篇2之多线程:NSThread NSOperation GCD(一)
- iOS多线程编程之NSThread的使用 分类: ios开发 2015-01-01 12:36 123人阅读 评论(0) 收藏
- JAVA与多线程开发(线程基础、继承Thread类来定义自己的线程、实现Runnable接口来解决单继承局限性、控制多线程程并发)