iOS学习之多线程(一)
一、进程
(1)进程的定义:
1.进程是程序的一次执行;
2.进程是一个程序及其数据在处理机上顺序执行时所发生的活动;
3.进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行进行资源分配和调度的一个独立单位;
总结:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单元。
(2)进程的特征:
动态性、并发性、独立性、异步性
(3)进程的基本状态及转换:
1.就绪状态(Ready):指进程已处于准备好了运行的状态,即进程已分配到除CPU以外的所有必要资源后,只要再获得 CPU,便可立即执行;
2.执行状态(Running):指进程已获得CPU,其程序正在执行的状态;
3.阻塞状态(Block):指正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态,亦 即进程的执行受到阻塞。
二、线程
(1)线程的定义:
1.一个进程由多个线程组成(1个进程至少要有1个线程);
2.线程是进程的基本执行单元,一个进程的所有任务都在线程中执行。
三、多线程
(1)多线程的定义:
一个进程中可以开启多个线程,多个线程可以同时执行不同的任务。
(2)使用多线程的好处:
1.多线层可以解决程序的阻塞的问题;
2.多线程可以提高程序的执行效率。
(3)多线程的执行原理:
1.(单核CPU)同一时间,CPU只能处理一个线程,只有一个线程在执行;
2.多线程同时执行时CPU快速地在多个线程之间的切换;
3.CPU调度线程的时间足够快,就造成了多线程的“同时”执行;
4.如果线程数非常多,CPU会在n个线程之间切换,消耗大量的CPU资源,每个线程被调度的次数会降低,线程的执行效 率降低。