进程
主线程
一个iOS程序运行后,默认会开启一条线程,该线程称为”主线程”或”UI线程”.
主线程的作用
显示/刷新UI界面
处理UI事件(比如点击事件,滚动事件,拖拽事件等)
主线程的使用注意
不要将耗时的操作放置在主线程中,耗时操作会卡住主线程严重影响UI的流畅度,会给用户一种”卡”的感觉,体验效果不就好.线程的串行
如果要在一个线程中执行多个任务,那么只能一个一个的按顺序执行这些任务,也就是说:在同一个时间内,一个线程中只能执行一个任务.
多线程
一个进程中可以开启多个线程,每个线程可以并行执行不同的任务.(多线程技术可以提高程序的执行效率)
多线程的原理
同一时间,CPU只能处理一条线程,只有一条线程在工作
多线程并发执行时,其实是快速的在线程之间调度
如果CPU调度线程的时间足够快,就会造成多条线程并发执行的假象
如果有很多很多线程
CPU会在多个线程之间调度,最终会导致 CPU累死,消耗大量的CPU资源,并且每条线程被调用执行的频率降低,导致线程的执行效率降低多线程的优点
能够适当的提高程序的执行效率
能够适当提高资源的利用率(CPU,内存的利用率)
多线程的缺点
开启线程需要占用一定的内存空间(iOS中默认情况下,主线程占用1 M,子线程占用512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能
线程越多,CPU在调度线程的开销就越大
程序设计的更加复杂:比如线程之间的通讯,多线程的数据共享问题
线程的通讯
在一个进程中,线程往往不是鼓励存在的,多个线程之间是存在于通信关系的
线程通信的体现
一个线程传递数据给另外一个线程
一个线程执行完任务后转到另外一个线程继续执行任务
iOS多线程之概念篇
------本文结束😘感谢阅读------