iOS 开发 多线程详解之Pthread实现多线程

pthread基础

  • 实现多线程的技术方案之一.
  • pthread是POSIX thread的简写.表示跨平台的线程接口.
  • 多线程的开发框架,由于是跨平台的C语言框架,在苹果的头文件中并没有详细的注释.
  • 要查阅pthread有关资料,可以访问http://baike.baidu.com

pthread创建子线程步骤

1.导入头文件

#import <pthread.h>

这里写图片描述

2.pthread创建子线程要使用的函数

/*
pthread_create(pthread_t  _Nullable *restrict _Nonnull, const pthread_attr_t *restrict _Nullable, void * _Nullable (* _Nonnull)(void * _Nullable), void *restrict _Nullable)
*/
     1.参数
     参数1 : 指向新线程的标识符的指针,传入新线程标识符的地址
     参数2 : 指向新线程的属性的指针,传入属性的地址, 此时传入空地址/空指针 == NULL
     参数3 : 指向函数的指针,传入函数名(函数的地址) : 是新线程要执行的函数/任务
     void *    (*)   (void *)
     返回值    函数名  函数参数

     参数4 : 传入到新线程要执行的函数的参数

     2.返回值 : int ,如果返回0 ,代表创建新线程成功,如果返回非0 ,代表创建新线程失败
        很多C语言的框架,并不是非0即真
        成功的结果只有一个,但是失败的原因会有很多
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    // 线程调试
    NSLog(@"touchesBegan %@",[NSThread currentThread]);

    [self pthreadDemo];
}

- (void)pthreadDemo
{
    // 线程调试
    NSLog(@"pthreadDemo %@",[NSThread currentThread]);

    // 参数1 : 新线程的标识符,这个函数会自动的给 ID 赋值
    pthread_t ID;

    int result = pthread_create(&ID, NULL, demo, NULL);
    if (0 == result) {
        NSLog(@"OK");
    } else {
        NSLog(@"NO OK");
    }
}

/// 新线程要执行的函数
void *demo(void *param)
{
    // 线程调试
    NSLog(@"demo %@",[NSThread currentThread]);

    return NULL;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值