进程:
概念:操作系统中正在运行时的程序,专业讲,进程是应用程序的执行实例。在代码中,基本处于主要片段中,如viewDidLoad。
线程:
概念:
线程是进程内容的一个独立的执行单位,用来执行某一任务(功能)。一个线程同时只能执行一个任务。线程执行完毕就不会被销毁。
主线程:
当应用程序启动时(应用程序成为进程)自动创建和启动,通常用来处理用户的输入并响应各种事件和消息,主线程的终止也以为着此程序的结束。
子线程:
由主线程创建,用来帮助主线程执行程序的后台处理任务。基于一个线程同时只能执行一个任务,可以理解为主线程的任务就是控制创建并控制子线程处理任务,这一点可以区分主线程与子线程之间的关系。一个进程可以有多个线程,并且所有线程都在该进程的虚拟地址空间中,可以使用进程中的全局变量和系统资源。
多线程:
1.当进程中只有一个线程用来执行任务的话,那么这个程序就不会响应一个以上的操作,只能等待前一个任务结束,这就造成了线程阻塞。为了提高程序的执行效率,可以开启多条线程用来执行不同的任务。
2.同一时间内CPU只能处理一条线程(即便是多核的CPU,其内部也只是共用一个寄存器)。多线程并行执行,实际上是CPU运行速度快,各线程之间进行切换时间短,造成同时执行的假象。按某一时间段切换时,若任务没有结束,会保存在栈中,等待下次开启任务。
多线程优势:
提高程序执行效率,提高资源利用率(CPU内存)
多线程劣势:
1.开启线程占用一定的内存空间。
2.线程越多,CPU在线程调度上的开销越大
3.程序设计更加复杂:比如线程之间的通信,数据共享等。
网友评论