多线程的一点内容
- 多线程的主要目的是将耗时操作放在后台处理,保证UI界面的正常显示和交互
- 多线程中的基本概念:
- 进程:正在运行的一个应用程序可以成为一个进程
- 线程:一个进程中会有多个任务执行,这时候就是需要线程来执行任务
- 多线程:一个进程中可以有多条线程,可以”同时”执行任务,操作系统里边有时间片,这个时间片就是线程切换的时间,时间片的时间很短,给人一种假象,线程在”同时"执行任务
- 日常生活中的多线程体现:比如说我们一边听歌,一边聊天,一遍浏览网页就是一种多线程的体现
- 谈谈多线程优点和缺点
- 优点:
- 1.能适当提高程序的执行效率
- 2.能适当提高CPU和内存的利用率
- 3.线程上的任务执行完成后,线程自动销毁,节省内存
- 缺点:
- 1.开启线程会占用一定内存空间
- 2.线程越多CPU调度线程的开销(时间/空间开销)会越大
- 3.程序设计更加复杂,如线程间的通信和数据共享
- 优点:
- 主线程
- 程序运行后,默认开启主线程
- 主线程负责处理刷新UI界面,处理UI事件
- 直观的看一个线程是不是主线程可以通过打印[NSThread currentThread]来查看,如果为1则为主线程,否则不是。
- 使用主线程的注意事项:别在主线程执行耗时操作(如下载),否则可能导致UI界面卡顿
- 多线程的实现方案:
- 1.pthread:
- pthread 其中表示可移植操作系统接口即POSIX (Portable Operating System Interface)这表明它是可移植的
- 一套通用的对线程API,适用于Unix/Linux/Windows等系统跨平台
- 需要用C语言编写,使用难度大,需要程序员来管理线程声明周期,使用频率很低
- 2.NSThread
- 面向对象,OC语言操作,简单易用,可以直接操作线程对象
- 不需要程序员管理线程生命周期,使用频率尚可
- 3.GCD
- 为了替代NSThread等多线程技术而出生的,它充分利用了设备的多核
- 使用C语言操作
- 不需要程序员管理声明周期,使用频率较高
- 4.NSOperation
- 基于GCD,而且比GCD多了简单使用的功能
- 面向对象,使用OC语言编写
- 不需要程序员管理内存,使用频率较高
- 1.pthread:
我会不定期分享 iOS 相关技术文章