线程与进程
进程是指在系统中正在运⾏的⼀个应⽤程序,每个进程之间是独⽴的,每个进程均运⾏在其专
⽤的且受保护的内存空间内
线程是进程的基本执⾏单元,⼀个进程的所有任务都在线程中执⾏,进程要想执⾏任务,必须
得有线程,进程⾄少要有⼀条线程。程序启动会默认开启⼀条线程,这条线程被称为主线程或
UI 线程
线程调度与时间⽚
⼀个 CPU 核⼼同⼀时刻只能执⾏⼀个线程。当线程数量超过 CPU 核⼼数量时,⼀个 CPU 核⼼往
往就要处理多个线程,这个⾏为叫做线程调度。 就是 ⼀个CPU 核⼼轮流让各个线程分别执⾏⼀段
时间,也就是说⼀个设备并发执⾏的线程数量是有限的。CPU在多个任务直接进⾏快速的切换,这
个时间间隔就是时间⽚。
线程的⽣命周期
GCD的中的队列
队列的作⽤是⽤来存储任务。队列分类串⾏队列和并发队列。串⾏队列和并发队列都是 FIFO ,也
就是先进先出的数据结构。串⾏队列 :它的DQF_WIDTH等于1,相当以它只有⼀条通道。所以队列中的任务要串⾏执⾏,也就
是⼀个⼀个的执⾏,必须等上⼀个任务执⾏完成之后才能开始下⼀个,⽽且⼀定是按照先进先出的
顺序执⾏的,⽐如串⾏队列⾥⾯有4个任务,进⼊队列的顺序是a、b、c、d,那么⼀定是先执⾏
a,并且等任务a完成之后,再执⾏b... 。
并发队列 :它的DQF_WIDTH⼤于1,相当于有多条通道。队列中的任务可以并发执⾏,也就任务可
以同时执⾏,⽐如并发队列⾥⾯有4个任务,进⼊队列的顺序是a、b、c、d,那么⼀定是先执⾏
a,再执⾏b...,也是按照先进先出(FIFO, First-In-First-Out)的原则调⽤的,但是执⾏b的时候a
不⼀定执⾏完成,⽽且a和b具体哪个先执⾏完成是不确定的。通道有很多,哪个任务先执⾏完得看
任务的复杂度,以及cpu的调度情况。