美文网首页iOS基础·OC高级篇
iOS进阶之多线程--pthread简单使用

iOS进阶之多线程--pthread简单使用

作者: 一个默默无闻的程序猿 | 来源:发表于2018-04-02 11:19 被阅读8次

简介

pthread是一套通用的多线程API,C语言,适用于Unix\Linux\Windows系统,跨平台\可移植,使用难度大。百度百科介绍很详细,就不在这里多啰嗦,直接上代码!


pthread创建使用函数 pthread_create():

NSString *str = @"hello JG";
pthread_t threadID;    
int result = pthread_create(&threadID, NULL, &demo, (__bridge void *)(str));
if (result) {
    NSLog(@"OK");
}else{
    NSLog(@"error %d",result);
}

/**
 pthread是属于POSIX 多线程开发框架
 参数:
 1.指向一个线程代号的指针
 2.线程的属性
 3.指向函数的指针
 4.传递该函数的参数
 返回值:
 如果是0,表示正确
 如果是非0,表示正确
*/

参数3:这里传入一个函数的指针,首先创建函数 dem(),这里首先介绍一下C语言中的函数实现:

/**
void *  (* )          (void * )
 返回值    (函数指针)      参数
 viod * 和OC中的id 是等价的!
 */
void *demo(void *param){
NSLog(@"%@  %@",[NSThread currentThread],param);
return NULL;
}

参数4:上面代码中对参数传递用到了__brige

   //__bridge 桥接
/**
 - 在ARC开发中,如果涉及到和C语言中的相同的数据类型进行转换,就需要用到__bridge “桥接”
 - 在MRC就不需要
 */

pthread的实际使用相当复杂且功能强大,本人菜鸟一枚,对C语言也是不甚了解,期待大牛的评论指导

相关文章

网友评论

    本文标题:iOS进阶之多线程--pthread简单使用

    本文链接:https://www.haomeiwen.com/subject/vvuthftx.html