多线程
2016-03-02 17:24
281 查看
首先 线程分为:主线程和子线程 一个进程可以对应多个线程 但是同时只能执行一个任务
一个操作系统可以对应多个进程,一个进程可以有多条线程,但至少有一个线程,同一个进程内的线程共享进程里的资源
线程:是用来执行任务的,线程彻底执行完任务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
一个操作系统可以对应多个进程,一个进程可以有多条线程,但至少有一个线程,同一个进程内的线程共享进程里的资源
线程:是用来执行任务的,线程彻底执行完任务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
相关文章推荐
- 生成树计数
- 欢迎使用CSDN-markdown编辑器
- codeforces--623B Alice, Bob, Two Teams
- 源码包与RPM包的区别
- [iOS]使用Command Line(终端)提交代码到远程库
- #include<bits/stdc++.h>
- IT忍者神龟之Struts2.xml配置全然正确流程能走通可是有红叉解决
- return 与 return false、return turn的常见用法
- iOS之UIButton基本用法
- 设计模式理解(零)
- BZOJ2588 Spoj 10628. Count on a tree
- BZOJ4013: [HNOI2015]实验比较
- Java关键字——super
- Thymeleaf中each标签遍历list如何获取index
- 终于转到IOS的学习了!!
- 推荐书籍系列(4) -- node.js&docker
- Oracle11g数据库空表不能导出解决办法
- MySQL常用指令
- 【高性能】Matlab的并行计算之spmd
- 10 个值得一试的开源深度学习框架