有时候可能有很多功能要同时实现,例如每隔多长时间就会检测程序网络连接,又或者有时候需要从服务器下载一个不小的文件,如果用单线程几乎是不可想的事情,程序将会卡的无法使用,用到多线程和不用多线程,给用户的体验天壤之别,所以多线程是一个ios开发人员必须学会的一个知识点。
多线程,听得有点高深,其实很简单。在iphone中,多线程可以这么理解,除主线程外还有其他线程,主线程和其他线程的区别是最重要的,最简单的理解方法就是主线程会改变界面,其他线程不会改变,主线程可以调用其他线程,
1.声明一个线程又两种方法:1.thread1=[[NSThread alloc]initWithTarget:selfselector:@selector(tt1) object:nil];这种方法必须启动 [thread1 start];
2.[NSThread detachNewThreadSelector:@selector(tt1) toTarget:selfwithObject:nil];这种方法不需要声明NSThread对象,也不需要启动,默认执行到这句就直接运行了
2.当程序在后台执行时,可能有时候需要调用另外的方法,这个方法名是[selfperformSelectorInBackgro und:@Selector(threadMethod)withObject:nil]
3.设置线程优先级-(void)setThreadPriority:(double)priority;线程优先级是从0.0到1.0,1.0是最高优先级。系统默认的优先级是0.5
4.线程休眠:+(void)sleepForTimeInterval:(NSTimeInterval)time;time参数为休眠时间。
5.线程的交互:线程的运行过程中,可能需要与其他线程进行通信,如在主线程中修改界面等等,可以使用如下接口:-(void)performSelectorOnMainThr ead:(SEL)Selectoe
withObject:(id)arg
waitUntilDone:(bool)wait;
6.线程的同步和线程琐,可以了解下
7.线程池,可以了解下
多线程,听得有点高深,其实很简单。在iphone中,多线程可以这么理解,除主线程外还有其他线程,主线程和其他线程的区别是最重要的,最简单的理解方法就是主线程会改变界面,其他线程不会改变,主线程可以调用其他线程,
1.声明一个线程又两种方法:1.thread1=[[NSThread alloc]initWithTarget:selfselector:@selector(tt1) object:nil];这种方法必须启动 [thread1 start];
2.当程序在后台执行时,可能有时候需要调用另外的方法,这个方法名是[selfperformSelectorInBackgro
3.设置线程优先级-(void)setThreadPriority:(double)priority;线程优先级是从0.0到1.0,1.0是最高优先级。系统默认的优先级是0.5
4.线程休眠:+(void)sleepForTimeInterval:(NSTimeInterval)time;time参数为休眠时间。
5.线程的交互:线程的运行过程中,可能需要与其他线程进行通信,如在主线程中修改界面等等,可以使用如下接口:-(void)performSelectorOnMainThr
6.线程的同步和线程琐,可以了解下
7.线程池,可以了解下