• 多线程的一点内容


    • 多线程的主要目的是将耗时操作放在后台处理,保证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语言编写
        • 不需要程序员管理内存,使用频率较高
    我会不定期分享 iOS 相关技术文章
  • 相关阅读:
    【LibreOJ】#539. 「LibreOJ NOIP Round #1」旅游路线
    【LibreOJ】#541. 「LibreOJ NOIP Round #1」七曜圣贤
    【LibreOJ】#538. 「LibreOJ NOIP Round #1」数列递推
    【Atcoder】ARC084 Small Multiple
    【BZOJ】4430: [Nwerc2015]Guessing Camels赌骆驼
    【NOIP】提高组2013 火柴排队
    OpenCV常用基本处理函数(8)图像变换
    OpenCV常用基本处理函数(7)图像金字塔和直方图
    OpenCV常用基本处理函数(6)图像梯度
    OpenCV常用基本处理函数(5)图像模糊
  • 原文地址:https://www.cnblogs.com/ITCoderW/p/6182633.html
Copyright © 2020-2023  润新知