简介
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语言也是不甚了解,期待大牛的评论指导