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