首先 线程分为:主线程和子线程 一个进程可以对应多个线程 但是同时只能执行一个任务
一个操作系统可以对应多个进程,一个进程可以有多条线程,但至少有一个线程,同一个进程内的线程共享进程里的资源
线程:是用来执行任务的,线程彻底执行完任务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 = @"王龙";
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];
最后总结:
*
加载一张图片
1.创建一个UIImageView,并放在父视图上
2.创建一个子线程
3.通过URL获取图片
4.回到主线程
5.在主线程更新UI
********加载多张图片********
1.创建多个UIImageView,并放在父视图上
2.创建多个子线程
3.通过URL获取图片
4.回到主线程
5.在主线程更新UI