多线程概述

  1. 多线程在iOS开发中是一个比较常见也十分重要的一门技术,首先我们知道每一个程序运行都会开启一个进程,而一个进程想要执行任务,必须得有线程(每个进程至少需要一条线程),线程是进程最基本的执行单元,一个进程所有的任务都在线程中执行。
  2. 一个线程中的任务是串行的,如果一个线程中有多个任务,那么只能一个一个的按照顺序执行这些任务。
  3. 所谓多线程就是一个进程中开启多条线程,每条线程可以并行(同时)执行不同的任务,多线程可以提高程序的执行效率

多线程的原理:

同一时间,CPU只能处理1条线程,只有1条线程在工作(执行)多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象。如果线程非常非常多,会发生什么情况?CPU会在N多线程之间调度,CPU会累死,消耗大量的CPU资源每条线程被调度执行的频次会降低(线程的执行效率降低)

多线程优缺点:

优点:
  1. 能适当的提高程序的执行效率;
  2. 能适当的提高资源利用率(CPU,内存利用率)
缺点:
  1. 开启线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能
  2. 线程越多,CPU在调度线程上的开销就越大
  3. 程序设计更加复杂:比如线程之间的通信、多线程的数据共享

开启多线程方式

  1. Pthread 基于比较底层的C语言
  2. NSThread 基于OC语言,面向对象,可直接操作线程对象
  3. GCD 旨在替代NSThread ,充分利用设备的多核
  4. NSOperation 基于GCD,比GCD多了一些功能,添加线程依赖,取消或暂停线程
GCD和NSOperation都是系统自动管理生命周期,功能页比较强大,会经常使用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 在打算写这篇多线层底层实现机制的时候,突然发现自己对于计算机竟然懂得这么表面,对于CPU的工作原理都不完全清...
    進无尽阅读 11,570评论 2 11
  • Object C中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么? 1...
    AlanGe阅读 5,818评论 0 17
  • 本文概述 本篇文章将分四块内容对Java中的多线程机制进行介绍:一. 多线程概述二. 实现多线程的两种方式三. 多...
    Mr_Yanger阅读 10,157评论 0 5
  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 9,665评论 0 23
  • 1.多线程的简单认知 1.进程和线程的认知 进程:一个正在运行的程序就是一个进程 一个进程由一个或多个线程组成进程...
    One苹果OneDay阅读 1,832评论 0 1

友情链接更多精彩内容