进程:运行过程中的程序,具有一定独立功能,是系统进行资源分配和调度的一个独立单位
线程:是进程的基本执行单元,一个进程的所有任务都在线程中执行,进程至少有一条线程,程序默认会开启一条线程,这条线程被称为主线程或UI线程
多线程优缺点:
优点:1、提高资源利用率
2、提高程序执行率
3、线程上的任务执行完后,线程会自动销毁
缺点:1、开辟线程需要占用一定的内存空间
2、线程越多,cpu调度的开销越大
多线程原理:
多线程的并发其实并不是同时执行,而是cpu在不同线程间频繁切换,达到同时的效果
线程和Runloop:
1、Runloop和线程是一一对应的
2、Runloop是来管理线程的,当线程的Runloop被开启后,线程执行完任务会休眠,等下次有任务时再执行任务
3、线程在第一次创建时被开启,在线程结束时销毁
4、Runloop在子线程中默认不开启,需要手动开启
线程池:
线程池是一种"池化"的线程使用模式,线程的创建、销毁、调度都有一定的开销,通过预先创建一定数量的线程,让这些线程处于就绪状态来提高系统响应速度,在线程使用完后归还到线程池达到重复利用的目的,从而降低系统资源的消耗、提高响应速度,以及增加线程的可管理性
线程的生命周期:
1、新建:实例化线程对象
2、就绪:调用start将线程加入可调度线程池,等待CPU调度(分配时间片)
3、运行:CPU从可调度线程池中分配时间片给线程,线程在未执行完毕情况下可能会在就绪和运行之间不断切换,程序员无法干预
4、阻塞:线程有时会因为同步、锁、sleep等方式阻塞
5、死亡:分为正常死亡(线程结束)和非正常死亡(线程终止)