我们先简单了解一下,我会在后面的博客里分别介绍这四种线程:
进程是指在系统中正在运行的一个应用进程
每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内
多线程
同一时间,CPU只能处理一条线程,只有一条线程在工作(执行)
多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)
如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象
多线程的优点
能适当提高程序的执行效率
能适当提高资源利用率(CPU,内存利用率)
多线程的缺点
创建线程是有开销的,ios下主要成本包括:内核数据结构(大约1KB),栈空间(子线程512KB,主线呈1KB,也可以用setStackSize:设置,但必须是4k的倍数,而且最小是16k),创建线程大约需要90毫秒的创建时间
如果开启大量的线程,会降低程序的执行性能
主线程的主要作用
显示/刷新UI界面
处理UI事件(比如点击事件,滚动事件,拖拽事件等)
主线程的使用注意
别将比较耗时的操作放到主线程中
耗时操作会卡主主线程,严重影响UI流畅度
pthread C语言 跨平台 线程生命周期:程序员需要管理 使用频率:几乎不用
NSThread OC语言 线程生命周期:程序员需要管理 使用频率:偶尔使用
GCD OC语言 旨在替代NSThread等线程技术,由苹果公司推出,充分利用设备的多核 。自动管理,经常使用
NSOperation 基于GCD(底层是GCD)。比GCD多了一些更简单实用的功能,使用更加面相对象 自动管理
GCD 和NSOperation 他们会帮你创建好线程
GCD是最常使用的