美文网首页闻道丶iOS(大杂烩)
1、多线程基本概念 和 iOS 中多线程技术

1、多线程基本概念 和 iOS 中多线程技术

作者: Laughingg | 来源:发表于2016-06-20 19:42 被阅读324次

1、什么是多线程

多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。

这个是百度上的解释!

2、为什么要学习多线程技术

目的都差不多就是:

  • 提高硬件的使用效率。
  • 改善用户对软件的使用体验。

你不希望用户在使用你的软件的过程中出现卡顿吧!
软件出现卡顿的主要原因就是 UI 线程处理了太多的耗时操作,耗时操作操作没有处理完成,UI界面就出现短暂性的停顿(卡顿)。

软件界面卡顿的解决方案:

  • UI 线程只处理 UI 的事情,例如界面的更新,用户事件的响应。耗时的操作可以放在后台的线程中执行,当耗时操作处理完毕后,通知 UI 线程刷新相应的界面。

提高 app 处理某一任务的能力:

  • 由于现在的 cpu 基本上都是多核处理器,都可以进行并发操作。假设,下载一个文件用一个线程是 10 分钟,如果用 2个线程下载是否就只需要 5 分钟, 用 5个线程下载是否就只要 2 分钟。在用户的体验上是否效率提高了 500% 。 用户的使用体验就是一个字 爽。
    使用多线程技术也提高了硬件的使用效率。

3、多线程的基本概念

  • 进程: 正在进行的应用程序。(可以简单理解为,一个运行的应用程序就是一个进程)
    每个进程之间是独立的,每个进程都运行在专用的且受保护的内存空间内。
  • 线程:1 个进程需要执行任务,必须得有线程。(每一个进程至少有一条线程)
    线程是进程的执行单元,一个进程中的所有任务都在线程中执行。
  • 多线程:1 个进程中可以开启多条线程。每条线程可以(同时)并发执行不同的任务。
    多线程可以提高程序的执行效率。

多线程的原理
同一时间,cpu 只能处理1条线程,只有1条线程在工作(执行)。
多线程并发执行,其实是 cpu 快速的在多条线程之间调度(切换)。

多线程的优缺点
优点
* 能适当的提高程序的执行效率。
* 能适当提高资源的利用率。(cpu 和 内存的利用率)

缺点
* 开启的线程需要占用一定的内存空间,(默认每一条线程占用 512kb的内存)
开启大量的线程,会占用大量的内存空间,降低程序的性能。
* 线程越多,cpu 在调度线程上的开销就越大。
* 线程越多,就越耗电(手持设备必须考虑这个问题)
* 程序设计更加复杂: 线程间通讯,多线程的数据共享。

线程在 5 到 6 条之间是比较合理的。


iOS 中多线程技术的使用

1、主线程

默认会开启1一条线程,称之为主线程。 iOS 中称之为 UI线程
(在 iOS 开发中所有视图更新的操作都是在 主线程中完成的)

主线程的主要作用

  • 显示、刷新 ui 界面
  • 处理 UI 事件(点击,滚动,退拽)

使用注意

  • 将耗时操作放在后台线程。

2、 iOS 中多线程技术

pthread : (纯属打酱油的)

  • 多线程的 api
  • 适用 unix ,linex , windows
  • c 语言
  • 跨平台
  • 难度大
  • 程序员管理生命周期
    *** 几乎不用

NSThread:

  • 适用简单
  • 简单易用,可以直接操作线程。
  • oc 的
  • 偶尔适用
  • 程序员管理生命周期

GCD

  • 替代 NSThread 等多线程技术
  • 充分利用设备多核技术
  • c
  • 经常适用
  • 系统自动管理线程生命周期

NSOperation

  • 基于 gcd 的封装
  • 比 gcd 简单
  • 更加面向对象
  • 系统自动管理线程生命周期
  • 经常适用

推荐博客:

objc 中国——并发编程:API 及挑战

相关文章

  • iOS开发多线程那些事儿

    iOS中的多线程 iOS中多线程实现的多种技术方案: 多线程的两组基本概念 串行(Serial):在固定时间内只能...

  • 多线程之NSThread/GCD/NSOperation

    概述及基本概念1.进程和线程2.多线程3.任务4.队列5.iOS中的多线程技术6.GCD和NSOperationQ...

  • iOS多线程之NSThread

    前面总结了多线程基本概念和iOS多线程PThread的使用,下面接着总结iOS多线程的另外一种实现方案NSThre...

  • 1、多线程基本概念 和 iOS 中多线程技术

    1、什么是多线程 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具...

  • iOS 多线程技术最牛图解

    了解更多 iOS 多线程技术,点击阅读以下文章 iOS 多线程技术深度解析 最浅显易懂的iOS多线程技术 - GC...

  • iOS原理(八)----多线程

    iOS原理(八)----多线程 基本概念 iOS常见的多线程方案有以下四种: pthread:是一套通用的多线程C...

  • 012-GCD多线程技术

    多线程 线程是进程内部执行任务的一种途径,多线程技术能适当提高程序执行效率和资源利用率,iOS 中的多线程技术主要...

  • iOS 底层 day19 多线程基本概念 GCD线程死锁总结

    一. 关于多线程中的一些基本概念 1. iOS 中有几种多线程方案有哪几种?分别简述一下。 二. GCD 中的一...

  • OS X 和iOS 中的多线程技术(下)

    OS X 和iOS 中的多线程技术(下) 上篇文章中介绍了 pthread 和 NSThread 两种多线程的方式...

  • iOS多线程

    iOS多线程 iOS中多线程的方案?有什么优缺点? 技术方案简介语言线程生命周期使用频率pthread1.一套通用...

网友评论

    本文标题:1、多线程基本概念 和 iOS 中多线程技术

    本文链接:https://www.haomeiwen.com/subject/wvwwdttx.html