1、简介:

1.1 iOS有三种多线程编程的技术,分别是:

1.、NSThread

2、Cocoa NSOperation (iOS多线程编程之NSOperation和NSOperationQueue的使用

3、GCD  全称:Grand Central Dispatch( iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用

这三种编程方式从上到下抽象度层次是从低到高的,抽象度越高的使用越简单,也是Apple最推荐使用的。

这篇我们主要介绍和使用NSThread,后面会继续2、3 的讲解和使用。

1.2 三种方式的有缺点介绍:

NSThread:

优点:NSThread 比其他两个轻量级

缺点:需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有一定的系统开销

NSThread创建的两种方式:

从以下代码可以看到 NSThread 是并发同步执行

- (void)viewDidLoad {
[super viewDidLoad]; [NSThread detachNewThreadSelector:@selector(myThread) toTarget:self withObject:nil];
NSLog(@"");
} -(void)myThread
{
sleep();
NSLog(@"");
}
.
- (void)viewDidLoad {
[super viewDidLoad]; NSThread * maThread = [[NSThread alloc] initWithTarget:self selector:@selector(myThread) object:nil];
[maThread start];
NSLog(@"");
} -(void)myThread
{
sleep();
NSLog(@"");
}

第一种方式会直接创建线程并且开始运行线程,第二种方式是先创建线程对象,然后再运行线程操作,在运行线程操作前可以设置线程的优先级等线程信息

2.4.2线程间通讯

线程下载完图片后怎么通知主线程更新界面呢?

[self performSelectorOnMainThread:@selector(updateUI:) withObject:image waitUntilDone:YES];

performSelectorOnMainThread是NSObject的方法,除了可以更新主线程的数据外,还可以更新其他线程的比如:

用:performSelector:onThread:withObject:waitUntilDone:

最新文章

  1. 《深入理解C#》第3版 学习进度备忘
  2. Python开发者最常犯的10个错误
  3. [大牛翻译系列]Hadoop(17)MapReduce 文件处理:小文件
  4. Shell脚本编程的常识
  5. C# 导出 Excel 数字列出现‘0’的解决办法
  6. Cesium 获取当前视图范围
  7. Java程序猿笔试面试之String1
  8. Oracle 生成一张测试表并插入随机数据
  9. Jdom读取XML文件
  10. How To Use ggplot2
  11. 让你的微信小程序具有在线支付功能
  12. python random 模块的用法
  13. 004dayPython学习输入并输出用户名和密码
  14. MySQL技术内幕读书笔记(八)——事务
  15. 数组的typedef 和函数的typedef
  16. python day03--字符串
  17. Django---Mysql数据库链接
  18. loaded some nib but the view outlet was not set(转载)
  19. 理解PHP数组的序列化和反序列化
  20. C#SendMessage用法

热门文章

  1. Oracle之多表查询
  2. Tomcat 8.5 基于 Apache Portable Runtime(APR)库性能优化
  3. 北京Uber优步司机奖励政策(3月19日)
  4. 北京Uber优步司机奖励政策(12月10日)
  5. 天津Uber优步司机奖励政策(12月14日到12月20日)
  6. .net core 基于multipart/form-data的文件上传,这里以图片上传为例
  7. Java:二进制(原码、反码、补码)与位运算
  8. STM32堆栈指针疑问
  9. centos7 的防火墙命令调整了
  10. Android 模拟器 下载、编译及调试