基础之 进程和线程

什么是进程?

  • 进程是指咋系统中正在运行的一个应用程序
  • 每个进程之间是相互独立的,每个进程都运行在其专用且受保护的内存空间内

什么是线程?

  • 一个进程想要执行任务,必须得有线程(每个进程至少要有一个线程)
  • 一个进程(程序)的所有任务都在线程中执行

线程中的串行

  • 1个线程中任务的执行是串行的
  • 如果要在1个线程中执行多个任务,那么只能一个一个地按顺序执行这些任务
  • 也就是说,在用一时间内,1个线程只能执行1个任务

进程和线程的比较

  • 线程是CPU调用(执行任务)的最小单位
  • 进程是CPU分配资源和调度的单位
  • 一个程序可以对应多个进程,一个进程中可以有多个线程,但至少有一个线程
  • 同一个进程内的线程共享进程的资源
  • 打比方车间就是进程  车间内的工人👷就是线程

多线程

  • 一个进程中可以开启多线程,每条线程可以并行(同时)执行不用的任务

多线程的原理

  • 同一时间,CPU只能处理1条线程,只有1条线程在工作(执行)
  • 多线程并发(同时)执行,其实是CPU快速的在多条线程之间调度(切换)
  • CPU调度线程的时间足够快,就会造成了多线程并发执行的假象
  • 如果线程非常多,会造成CPU在N多线程之间调度,CPU会累死,消耗大量的CPU资源,会降低线程运行效率
  • 一般线程开3-5条

多线程的优点

  • 提高程序的执行效率
  • 能适当的提高资源利用率(CPU,内存利用率)
  • CPU一次只能处理一条线程,比如说,处理一条线程时利用率是20%,那么多线程就会将CPU的利用率完全用到。

多线程的缺点

  • 创建线程时需要开销(空间)的。iOS 主要成本:创建线程大膏药90毫秒的创建时间,栈空间(子线程512kb,主线程1MB),内核数据结构(1kb左右)
  • 如果大量开启线程,会降低程序的性能。
  • 线程越多,CPU在调度线程上的开销就越大 (程序卡顿,运行不流畅)
  • 使程序设计更加复杂:比如线程之间的通信。多线程之间的数据共享。

主线程做UI处理 子线程做耗时操作。

posted @ 2017-03-15 16:41  唐宋元明清。  阅读(111)  评论(0)    收藏  举报