多线程,充分利用设备多核的技术。应用非常广泛
|技术方案|简介|语言|线程生命周期|使用频率|
|:---|:---|:---|:---|:---|
|pthread|一套通用的多线程API</br>适用于Unix\Linux\Windows</br>跨平台\可移植</br>使用难度大</br>是下面几种方案的底层实现|C|程序员管理|几乎不用|
|NSThread|使用更加面向对象</br>简单易用,可直接操作线程对象|OC|程序员管理|偶尔使用|
|GCD|旨在替代NSThread等线程技术</br>充分利用设备多核|C|自动管理|经常使用|
|NSOperation|基于GCD(底层是GCD)</br>比GCD多一些简单实用的功能</br>使用更加面向对象|OC|自动管理|经常使用|
同步和异步:决定能不能开启新的线程
同步:在当前线程中执行任务,不具备开启新线程的能力异步:在新的线程中执行任务,具备开启新线程的能力并发和串行:决定任务的执行方式
并发:多个任务并发(同时)执行串行:一个任务执行完毕后,再执行下一个任务||并发队列|手动创建的串行队列|主队列|
|:---|:---|:---|:---|
|同步(sync)|没有开启新线程</br>串行执行任务|没有开启新线程</br>串行执行任务|没有开启新线程</br>串行执行任务|
|异步(async)|有开启新线程</br>并发执行任务|有开启新线程</br>串行执行任务|没有开启新线程</br>串行执行任务|