一、进程与线程的区别
进程:一个正在运行的应用程序,是cpu分配资源的最小单位
线程:一个进程要想执行任务至少有一条线程,线程就是一条无分叉的路径,是程序执行的最小单位
二、多线程原理
1.同一时间,cpu只能处理一条线程,只有一条线程在工作
2.多线程并发执行其实就是cpu快速在多条线程之间快速切换
3.如果cpu调度线程的速度非常快就造成了多线程并发执行的假象(多核cpu是真的并发执行)
思考:如果线程非常多会发生什么情况
1.cpu在n条线程快速切换,消耗资源
2.cpu调用的频率降低,执行效率下降
三、多线程优缺点
优点:能适当提高程序的执行效率,能适当提高资源利用率
缺点:创建线程是有开销的(子线程521KB,主线程1MB),如果开启大量线程降低程序性能,程序设计变得更加复杂
四、多线程安全问题
多线程访问同一块资源时,容易引发数据错乱、数据安全问题,解决方法加一把互斥锁。
五、其它
atomic:线程安全需要消耗大量的资源内部会加锁
nonatomic:非线程安全,适用移动设备
网友评论