美文网首页
线程进程的管理

线程进程的管理

作者: 青春flame | 来源:发表于2016-09-28 15:52 被阅读81次

线程进程的管理

线程与进程的关系

  • 1、线程是CPU执行任务的基本单位,一个进程可以有多个线程,但同时只能执行一个任务。
  • 2、进程就是运行中的软件,是动态的。
  • 3、一个操作系统可以对应多个进程,一个进程可以有多条线程,但至少有一个线程,同一个进程内的线程共享进程里的资源

主线程的作用

进程一启动就自动创建,
用于显示和刷新UI,同时处理UI事件

子线程的作用
  • 1、处理耗时的操作
  • 2、不能刷新UI

管理线程的方法

  • NSThread:

    • NSThread是轻量级的多线程开发,使用并不复杂,但使用NSThread需要自己管理线程的声明周期。
  • NSOperation:

    • 1、使用NSOperation和NSOperationQueue进行多线程开发类似于线程池,只要将一个NSOperation(实际开发中需要使用其子类NSInvocationOperation、NSBlockOperation)放到NSOperationQueue这个队列中线程就会依次启动。NSOperationQueue负责管理、执行所有的NSOperation,在这个过程中可以更加容易管理线程总数和控制线程之间的依赖关系。

    • 2、NSOperation有两常用子类用于创建线程操作:NSInvocationOperation和NSBlockOperation,两种方式本质没有区别,但后者使用block形式进行代码组织,使用相对方便

  • GCD(Grand Center Dispatch)

    • 1、GCD是基于C语言开发的一套多线程开发机制,也是目前苹果官网推荐的多线程开发方法。

    • 2、GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程),程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码

    • 3、GCD是这三种多线程开发方式中抽象层次最高的,使用起来也是最为方便的,只是基于C语言开发,并不像前两种是面向对象开发,而是完全面向过程的。这种机制相比较于前面两种多线程开发方式最显著的优点就是它对于多核运算更加有效,会自动利用更多的CPU内核(比如双核、四核)。

    • 4、GCD中也有一个类似于NSOperationQueue的队列,GCD统一管理整个队列中的任务。但是GCD中的队列分为并行队列和串行队列两类:

        1、串行队列:只有一个线程,加入到队列中的操作按添加顺序依次执行。
      
        2、并发队列:有多个线程,操作进来以后他会将这些线程安排在可用的处理器上,同时保证先进来的任务优先处理。
      
        其实在GCD中还有一个特殊队列就是主队列,用来执行主线程上的操作任务。

相关文章

  • 详解iOS面试:进程与线程

    进程与线程 进程 = 资源管理 + 线程, 进程是资源分配单位,线程是 CPU 调度单位 以前没有线程的时候,进程...

  • 多线程与进程(面试03)

    线程与线程池 什么是线程, 提到线程就要说一下进程, 进程: 进程就是正在执行的程序,(任务管理器) 线程: 是...

  • 进程管理

    进程管理进程和线程图形简单解释进程和线程管理VIM编辑Linux 系统资源信息的获取获取 Linux CPU 信息...

  • Java 线程上下文切换

    进程是 操作系统 的管理单位,而线程则是 进程 的管理单位;一个进程至少包含一个执行线程。不管是在单线程还是多线程...

  • windows vs linux

    内核管理进程、线程,决定哪个进程、线程使用 CPU,也就是进程调度的能力;管理内存,决定内存的分配和回收,也就是内...

  • Android中进程和线程

    1,Linux中的进程管理1)进程和线程进程是资源分配的最小单位。线程是操作系统调度执行的最小单位。进程和线程是程...

  • 开题

    linux 内核 线程和进程管理

  • python线程池的简单实现

    为了在项目中管理优化线程数量,线程池是必不可少的。Python的在multiprocess中有进程池作为进程管理,...

  • Android进程管理

    Process ADJ 进程生命周期 相关资料 进程和线程 AMS进程管理

  • 安卓编程技巧总结(3) 进程与线程处理

    多进程 线程的管理 线程使用 线程锁 进程使用 进程间通信时注意URI传递 7.带返回值的异步任务Callable...

网友评论

      本文标题:线程进程的管理

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