一、多线程的技术方案
1.我们来看一下多线程的技术方案
技术方案
pthread:一套通用的多线程API、适用于Unix\Linux Windows等系统、跨平台、可移植、使用难度大、C语言、线程的生命周期由程序员管理、使用频率:几乎不用
NSThread:使用更加面向对象、简单易用、可直接操作线程对象、OC语言、线程的生命周期由程序员管理、使用频率:偶尔使用
GCD:旨在替代NSThread等线程技术、充分利用设备的多核、C语言、线程的生命周期自动管理、使用频率:经常使用
NSOperation:基于GCD (底层是GCD)、比GCD多了一些更简单实用的功能、使用更加面向对象、OC语言、线程的生命周期自动管理、使用频率:经常使用
我们在iOS当中,可以使用以上四种方式来创建线程,
1)pthread:一套通用的多线程API,什么是API,是应用程序编程接口,其实就是一套函数、或是一套方法、因为它是C语言的,它里面提供的是函数、方法是属于对象的,函数不属于任何人,可以直接调用,方法是面向对象的、可以在Unix、Linux、Windows下用,为什么没写Mac呢,Mac是基于Unix的、线程生命周期需要程序员管理,那什么是生命周期呢,线程从创建到结束,中间经历的这一个过程,就是线程的生命周期,
pthread的线程生命周期,需要程序员来管理,不经常用,
2)NSThread:是Foundation中提供的一些类,更加面向对象,线程的生命周期也需要程序员来管理,因为NSThread,其实就是对pthread的封装,偶尔使用,
3)GCD:旨在替代NSThread,因为NSThread,线程的生命周期需要程序员来管理,GCD不需要程序员来管理,GCD能够充分的利用设备的多核,GCD也是C语言开发的,所以它里边提供的也是一些函数,
4)NSOperation:是一个类,面向对象,基于GCD,也有GCD的一些优点,充分利用多核,生命周期自动管理,比GCD多了一些更简单实用的功能,经常使用,苹果推荐我们使用NSOperation,因为它面向对象,它也是基于GCD的,
二、pthread演示
1.pthread演示
导入头文件#import <pthread.h>
代码
//线程编号的地址