标签:
线程:是用来执行任务的,线程彻底执行完任务A才能去执行任务B。为了同时执行两个任务,产生了多线程。
进程: 1.就是在操作系统中运行的程序。专业说,进程就是应用程序的执行实例。
2.进程不能执行任务
3.进程咋运行时创建的资源随着进程的终止而死亡。
线程:执行完毕就会被销毁。分为:主线程和子线程
主线程:当应用程序启动时自动创建和启动,通常用来处理用户的输入并相应各种事件和消息,主线程的终止就意味着改程序的结束
创建线程的方法:
// 1??第一种 手动开启
NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(thread1:) object:@"thread1"];
// 开启线程
[thread start];
**********注意:使用第一种方法时千万不要忘记手动开启线程***************
// 2??第二种 自动开启
[NSThread detachNewThreadSelector:@selector(thread2:) toTarget:self withObject:@"thread2"];
NSLog(@"%@",[NSThread currentThread]);
// [NSThread currentThread];获取当前的线程
NSThread *Newthread = [NSThread currentThread];
Newthread.name = @"1111111";
NSLog(@"%@",Newthread);
// [NSThread isMainThread] 判断当前线程是否是主线程
BOOL isMainThread = [NSThread isMainThread];
NSLog(@"当前线程是否是主线程:%d",isMainThread);
// [NSThread isMultiThreaded] 判断当前线程是否是多线程
BOOL isMoreThread = [NSThread isMultiThreaded];
NSLog(@"是否是多线程:%d",isMoreThread);
// setThreadPriority 设置线程的优先级:(0-1)
[NSThread setThreadPriority:1.0];
// sleepForTimeInterval 让线程休眠
[NSThread sleepForTimeInterval:2];
// 返回到 主线程 waitUntilDone 设置为yes 意味着 UI更新完才会去做其他操作
[self performSelectorOnMainThread:@selector(updateUI:) withObject:image waitUntilDone:YES];
}
最终创建线程的步骤:
加载一张图片
1.创建一个UIImageView,并放在父视图上
2.创建一个子线程
3.通过URL获取图片
4.回到主线程
5.在主线程更新UI
********加载多张图片********
1.创建多个UIImageView,并放在父视图上
2.创建多个子线程
3.通过URL获取图片
4.回到主线程
5.在主线程更新UI
标签:
原文地址:http://www.cnblogs.com/dengfuqiang/p/5235851.html