多线程之概述

2017-05-10  本文已影响5人  Mr_Pt

进程和线程

  进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操作系统进行资源分配和调度的一个独立单位;
  线程是进程的一个实体,是CPU调度和分派的基本单位,是比进程更小的能独立运行的基本单位。
  线程的划分尺度小于进程,这使得多线程程序的并发性高;进程在执行时通常拥有独立的内存单元,而线程之间可以共享内存。使用多线程的编程通常能够带来更好的性能和用户体验,但是多线程的程序对于其他程序是不友好的,因为它可能占用了更多的CPU资源。当然,也不是线程越多,程序的性能就越好,因为线程之间的调度和切换也会浪费CPU时间。

串行和并行

  当一个线程执行多个任务,会采用执行完一个再执行下一个的方式,这种执行任务的方式称为串行;多个线程分担多个任务,不同的任务同时执行,这种执行任务的方式称为并发。

同步和异步

  同步是指当前一个任务未能完成时,后一个任务被阻塞;异步可以理解为不同的任务在不同的线程中执行,当开辟的子线程(工作线程)发生阻塞,主线程或其他线程不会受到影响。

说明:异步和并发的概念不完全相同,异步强调解决主线程阻塞的问题,而并发一般指子线程(工作线程)之间的关系,多个工作线程分担任务称为并发执行任务。

多线程的实现方式

iOS开发中实现多线程的方式很多,包括:

上一篇 下一篇

猜你喜欢

热点阅读