您的位置:首页 > 理论基础 > 计算机网络

第01天多线程网络:(03):多线程在iOS开发中的应用

2017-04-15 00:00 567 查看
#####一、主线程

什么是主线程
一个iOS程序运行后,默认会开启1条线程,称为“主线程”或“UI线程”

主线程的主要作用
显示\刷新UI界面
处理UI事件(比如点击事件、滚动事件、拖拽事件等)

主线程的使用注意
别将比较耗时的操作放到主线程中
耗时操作会卡住主线程,严重影响UI的流畅度,给用户一种“卡”的坏体验

#####二、耗时操作的执行

如果将耗时操作放在主线程
如果将耗时操作放在子线程(后台线程、非主线程)


code
不要把耗时操作放到主线程里面

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
- (IBAction)btnClick:(id)sender {

NSLog(@" -- %@",[NSThread currentThread]);

for (NSInteger i = 0; i<10000; i++) {
NSLog(@"%zd ---",[NSThread currentThread]);
}
}

- (void)viewDidLoad {
[super viewDidLoad];

// 1.获得主线程 (类 : NSThread 线程)
NSThread *mainThread = [NSThread mainThread];
NSLog(@" -- %@",mainThread); // <NSThread: 0x618000063ac0>{number = 1, name = main}

// 2.获得当前线程
NSThread *currenThread = [NSThread currentThread];
NSLog(@" -- %@",currenThread); // <NSThread: 0x618000063ac0>{number = 1, name = main}
// 3. 判断主线程
// 3.1 number = 1;
// 3.2 类方法
BOOL isMainThreadA = [NSThread isMainThread];
// 3.3 对象方法
BOOL isMainThreadB = [currenThread isMainThread];

NSLog(@"-- %zd %zd",isMainThreadA,isMainThreadB);
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息