多线程 ——pthread

参数

  • 第一个参数:为指向线程标识符的指针。

    • 线程的id
    • C语言中没有对象的概念,要实现对象,实用的是结构体,不需要加 *
  • 第二个参数:用来设置线程属性。

  • 第三个参数:是线程运行函数的起始地址。
  • 在c语言中 void * (指向任何地址的指针)等于 OC的id(万能指针)

    • 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;

}

你可能感兴趣的:(多线程)