美文网首页
线程初步理解

线程初步理解

作者: 李十岁 | 来源:发表于2021-03-03 17:42 被阅读0次

    一、线程与进程

    进程是资源分配的最小单元,线程是CPU调度的基本单位。一个进程奔溃之后在保护模式下不会对其他进程产生影响,一个线程死掉会导致整个进程死掉。

    1、一个程序至少有一个进程,一个进程至少有一个线程。

    2、进程之间很难共享资源,同一个进程中不同的线程资源共享。

    二、线程理解

    线程分为同步和异步、队列分为串行、并行(并发)(OC中还有主队列、全局队列)。

    总线程数<=CPU数量:并行运行

    总线程数>CPU数:并发运行

    并发当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。

    并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。 

    三、线程的几种方式

    1、NSThread

    · 建立线程简单快捷,可以直接操作线程对象

    · 管理多个线程困难,因为要管理他的生命周期

    · 平时很少使用常用到的是 [NSThread currentThread]获取当前线程。

    2、GCD--Grand Central Dispatch

    · 基于C语言的底层API

    · 使用方便、灵活(常用)

    3、NSOperation/NSOprationqueue

    · 基于GCD实现的一套Objective-C 的API

    · 面向对象的线程技术,使用时操作的是他的子类如: NSInvocationOperation, NSBlockOperation

    · 比GCD更容易操作 如:限制最大并发数量、操作之间的依赖关系

    相关文章

      网友评论

          本文标题:线程初步理解

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