iOS详解多线程(实现篇——pThread)

image.png

上一节中,我们探究了OC中重要的实现多线程的方法——NSOperation。本节中,我们了解一下不常用的一种创建多线程的方式——pThread。

相关链接:
NSOpreation链接:iOS详解多线程(实现篇——NSOperation)
GCD链接:iOS详解多线程(实现篇——GCD)
NSThread链接:详解多线程(实现篇——NSThread)
多线程概念篇链接:详解多线程(概念篇——进程、线程以及多线程原理)

源码链接:https://github.com/weiman152/Multithreading.git

多线程的实现方法

1.NSThread(OC)
2.GCD(C语言)
3.NSOperation(OC)

4.C语言的pthread(C语言)

5.其他实现多线程方法

本节主要内容:
1.pThread是什么
2.pThread如何使用

1.pThread是什么

pThread并不是OC特有的实现多线程的方法,而是Unix、Linux还有Windows都通用的一种实现多线程的方式。
pThread的全称是POSIX threads,是线程的 POSIX 标准。
pThread是C语言的,在iOS的开发中极少使用。

2.pThread如何使用
2.1 创建一个线程,并执行任务

使用之前,记得先导入头文件

#import 
//新线程调用方法,内容为要执行的任务
void * run(void * param){
    NSLog(@"任务执行,线程:%@", [NSThread currentThread]);
    return NULL;
}

- (IBAction)test1:(id)sender {
    //1. 创建线程,定义一个pthread_t类型的变量
    pthread_t thread;
    //2. 开启线程,执行任务
    pthread_create(&thread, NULL, run, NULL);
    //3. 设置子线程的状态设置为 detached,该线程运行结束后会自动释放所有资源
    pthread_detach(thread);
}

运行结果:


image.png

从结果可以看出,开启了新的线程,执行任务。

2.2 pThread的其他方法

pthread_create() 创建一个线程
pthread_exit() 终止当前线程
pthread_cancel() 中断另外一个线程的运行
pthread_join() 阻塞当前的线程,直到另外一个线程运行结束
pthread_attr_init() 初始化线程的属性
pthread_attr_setdetachstate() 设置脱离状态的属性(决定这个线程在终止时是否可以被结合)
pthread_attr_getdetachstate() 获取脱离状态的属性
pthread_attr_destroy() 删除线程的属性
pthread_kill() 向线程发送一个信号

由于pThread我们基本用不到,所以不再做深入研究。

你可能感兴趣的:(iOS详解多线程(实现篇——pThread))