首页 > 代码库 > 多线程的一点内容

多线程的一点内容

  • 多线程的主要目的是将耗时操作放在后台处理,保证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语言编写
      • 不需要程序员管理内存,使用频率较高

多线程的一点内容