IOS开发多线程 - 多线程的简单介绍
来源:互联网 发布:淘宝产品拍摄价格表 编辑:程序博客网 时间:2024/05/10 10:54
一.同步和异步
同步和异步是任务执行的两种方式
1.什么是同步
我们之前写程序的时候都是从上到下,代码顺序执行的 1个人执行多个任务,也是要依次执行,因为1个人同一时间只能执行1个任务 多个任务按序依次执行,就是同步执行 1)同步的概念:必须等待当前语句执行完毕,才可以执行下一个语句
2.什么是异步
多个人同时执行多个任务
二.进程和线程
1.什么是进程
进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存空间内
比如同时运行QQ 和 Xcode,系统会分别启动两个进程通过“活动监视器”可以查看Mac系统中所开启的进程
2.什么是线程
1个进程可以有多个线程组成(1个进程至少要有1个线程)线程是进程的基本执行单元,一个进程的所有任务都在线程中执行
比如听音乐,发送QQ消息,接收QQ消息都要在线程中执行
三.多线程
1.什么是多线程
多线程 : 1个进程中可以开启多个线程,多个线程可以“同时”执行不同的任务进程-公司,线程-员工,老板是什么?多线程可以解决程序阻塞的问题多线程可以提高程序的执行效率
2.多线程的执行原理
a. (单核CPU)同一时间,cpu只能处理1个线程,只有1个线程在执行任务
b. 多线程同时执行:是CPU快速的在多个线程之间的切换
c. cpu调度线程的时间足够快,就造成了多线程的”同时”执行的假象
d. 如果线程数非常多,cpu会在n个线程之间切换,消耗大量的cpu资源
i. 每个线程被调度的次数会降低,线程的执行效率降低
3.多线程的优缺点
多线程的优点 能适当提高程序的执行效率 能适当提高资源的利用率(cpu,内存) 线程上的任务执行完成后,线程会自动销毁多线程缺点 开启线程需要占用一定的内存空间(默认情况下,每一个线程都占512KB) 如果开启大量的线程,会占用大量的内存空间,降低程序的性能 线程越多,cpu在调用线程上的开销就越大 程序设计更加复杂,比如多线程的数据共享、线程间的通信
4.主线程
一个程序运行后,默认会开启1个线程,称为“主线程”或“UI线程” 主线程一般用来 刷新UI界面 ,处理UI事件(比如:点击、滚动、拖拽等事件) 主线程使用注意 注意:**别将耗时的操作放到主线程中** 耗时操作会卡住主线程,严重影响UI的流畅度,给用户一种卡的坏体验
5.总结
实际上,使用多线程,由于会开线程,必然就会消耗性能,但是却可以提高用户体验。所以,综合考虑,在保证良好的用户体验的前提下,可以适当地开线程,一般开3-6条。
但是需要注意的是:实际上,无论是主线程还是子线程,默认的堆栈大小都是512KB。官方文档没有及时更新。
0 0
- IOS开发多线程 - 多线程的简单介绍
- iOS开发多线程-多线程简单介绍
- iOS开发-多线程简单介绍
- iOS开发之多线程--多线程简单介绍
- iOS开发多线程-NSOperation简单介绍
- iOS开发多线程----简单介绍篇
- iOS开发教程之线程关于多线程的简单介绍
- iOS开发多线程---GCD的介绍和简单使用
- kidd风的IOS日志之iOS开发多线程篇—多线程简单介绍
- iOS开发多线程篇—多线程简单介绍
- iOS开发多线程篇—多线程简单介绍
- iOS开发多线程—01多线程简单介绍
- iOS开发多线程篇—多线程简单介绍
- iOS开发多线程篇—多线程简单介绍
- iOS开发多线程篇—多线程简单介绍
- iOS开发多线程篇—多线程简单介绍
- iOS开发多线程篇—多线程简单介绍
- iOS开发多线程篇—多线程简单介绍
- Python包安装报错解决方法
- socket example
- Python下调用Linux的Shell命令
- 分布式锁的基本原理
- Spark源码学习(4)——Scheduler
- IOS开发多线程 - 多线程的简单介绍
- python安装numpy函数库
- 常见编程语言简介
- 快速排序的初识(附C代码)
- js性能优化之函数缓存
- linux下libxml2使用
- 尝试写款小游戏吧
- ARM异常中断返回的几种情况
- 17. Letter Combinations of a Phone Number