iOS多线程
来源:互联网 发布:深圳市斯基凯网络 编辑:程序博客网 时间:2024/05/22 03:52
多线程执行原理
- 单核CPU同一时间,CPU只能处理一个线程,只有一个线程在执行
- 多线程同时执行:是CPU快速的在多个线程之间切换
- CPU调度线程的时间足够快,就会造成了多线程的 同时 执行
- 如果线程非常多,CPU会在n个线程之间切换,消耗大量的CPU资源,每个线程被调用的次数会降低执行的效率
多线程的优缺点
优点
- 能适当的提高程序的执行效率
- 能适当提高资源的利用率(CPU,内存)
- 线程上的任务执行完成后,线程会自动销毁
缺点
- 开启线程需要占用一定的内存空间(默认情况下,每一个线程都占512KB)
- 如果开启大量的线程,会占用大量的内存空间,降低程序的性能
- 线程越多,CPU在调用线程上的开销就越大
- 程序设计更加复杂,比如线程间的通信,多线程的数据共享
主线程
- 一个程序运行后,默认会开启一个线程,称为主线程或UI线程
- 主线程一般用来刷新UI界面,处理UI事件(比如:点击、滚动、拖拽等事件)
- 主线程特别注意事项:
*别将耗时的操作放到主线程中
耗时操作会卡住主线程,严重影响UI的流畅度,给用户一种卡的坏的体验
iOS中多线程的技术方案
- pthread
- 一套通用的多线程API,是由C语言来实现的,而且线程的生命周期是由程序员来进行管理,这种多线程方案几乎不用
- 适用于Unix、Linux、Windows等系统
- 跨平台,可移植
- 使用难度大
- NSThread
- 是实用OC实现的,使用更加面向对象,操作简单,可直接操作线程对象,线程的生命周期也是由程序猿管理,这个偶尔会用到
- GCD
- 旨在替代NSThread等的多线程技术
- 充分利用设备的多核优势,它也是实用C语言来实现的,并且它的线程的生命周期是自动管理的,也是我们使用最多的一种多线程技术方案
- NSOPeration
- 基于GCD(底层是GCD)
- 比GCD多个一些更加简单的使用的功能
- 使用更加面向对象,它是用OC来实现的,线程的生命周期是自动管理,这个也是经常使用的多线程技术方案
0 0
- ios多线程
- iOS多线程
- iOS多线程
- iOS多线程
- 多线程ios
- IOS 多线程
- ios多线程
- ios 多线程
- IOS多线程
- IOS多线程
- iOS多线程
- iOS多线程
- ios 多线程
- iOS多线程
- IOS多线程
- ios多线程
- iOS 多线程
- iOS 多线程
- Softmax的理解与应用
- Linux中的find指令
- C/C++ 笔试、面试题目大汇总
- hibernate学习之八(set和list映射)
- Android中Activity的四种启动模式
- iOS多线程
- app崩溃抓取
- 递归算法的学习
- 博为峰JavaEE技术文章 ——MyBatis Hibernate 工作原理
- 前端框架React
- ETL工具
- 全面整理的C++面试题
- SpringMVC异步化请求初探(续-請求背压)
- 图书管理系统(C语言)