多线程介绍
来源:互联网 发布:淘宝买家2钻厉害吗 编辑:程序博客网 时间:2024/06/05 12:27
多线程
一个进程是串行的同时只能进行一个任务也可以称为顺序进行 如果有在一个线程中执行多个任务只能一个一个执行 多线程的优点: - 能够适当提高程序的效率 - 能适当提高资源的利用率(CPU,内存利用率) 多线程的缺点 - 开启线程需要占用一定的内存空间(默认情况先,线程占用1M, 子线程占用512KB),如果开启大量的线程,会占用大量的内存 空间,降低程序的性能 - 线程多,CPU在调度线程上开销越大 - 程序设置更加复杂,比如线程之间的通信,多线程的数据共享
不要把比较耗时的线程放在主线程上
串发
并发
没有多线程时:
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [self longTimeOperation];}#pragma mark--耗时操作---(void)longTimeOperation{ for (int i=0; i<200000; i++) { NSLog(@"%d %@",i,[NSThread currentThread]); }}
在UI界面拉一个控件
当运行时返现有10多秒是UI控件是发生不了交互的
当使用主线程时:
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ //获得当前线程,在开发中经常打印所以多线程技术到能适应这个方法 //number==1为主线程 //number不等于1其他线程,至子线程获得次线程 NSLog(@"%s -- %@",__func__,[NSThread currentThread]); //把耗时操作放到子线程执行中 [self performSelectorInBackground:@selector(longTimeOperation) withObject:nil];}#pragma mark--耗时操作---(void)longTimeOperation{ for (int i=0; i<200000; i++) { NSLog(@"%d %@",i,[NSThread currentThread]); }}
发现UI上面的控件可以发生交互
0 0
- 多线程介绍
- 多线程总结--多线程介绍
- 多线程编程入门介绍
- linux多线程介绍
- Java Thread 多线程 介绍
- linux多线程编程介绍
- Java Thread多线程介绍
- iphone开发多线程介绍
- java多线程的介绍
- Java Thread 多线程 介绍
- c#多线程介绍1
- 多线程的基本介绍
- 基础多线程的介绍
- IOS GCD多线程介绍
- Python多线程介绍
- iOS 多线程介绍
- Java多线程--初步介绍
- 多线程基础知识介绍
- NOIP 2013 积木大赛 贪心
- 简单的Gson转换json数据
- Redis开源代码读书笔记六(sds模块)
- java集合类图
- 数据库性能优化
- 多线程介绍
- LINUX学习第一周
- startActivityForResult+Intent实现下一个activity传值给当前activity
- 《中国古代数学思想》读书笔记(15)
- 设计原则——单一原则(SRP)
- ClassyShark工具使用小记
- 2016 MSR Image Recognition Challenge (IRC) Results
- 数组实现顺序队列、顺序循环队列
- Spring3.1.2与Hibernate4.1.8整合