参数
第一个参数:为指向线程标识符的指针。
- 线程的id
- C语言中没有对象的概念,要实现对象,实用的是结构体,不需要加 *
第二个参数:用来设置线程属性。
- 第三个参数:是线程运行函数的起始地址。
在c语言中 void * (指向任何地址的指针)等于 OC的id(万能指针)
- void * (函数指针)(void )
- 格式:返回值 函数指针(参数)
- 函数的名字就是函数在内存的中起始地址
- 类似数组名就是指向数组中第一个元素的首地址
- void * (函数指针)(void )
第四个参数:是运行函数的参数。
- __bridge : 桥接的作用是告诉编译器如何来管理内存。__bridge什么特殊处理也不做。
- (void)pthreadDemo
{
pthread_t threadId = NULL;
id str = @"hehe";
pthread_create(&threadId, NULL, test, (__bridge void *)(str));
}
void *test(void *param)
{
NSString *str = (__bridge NSString *)(param);
NSLog(@"%@--%@",[NSThread currentThread],str);
return NULL;
}