PThread多线程实现

简介:

  • 一套通用的多线程API
  • 适用于Unix\Linux\Windows等系统
  • 跨平台\可移植
  • 使用难度大

代码实现:

#import <pthread.h>

-(void)pthreadDemo{
    /**
     pthread 是属于 POSIX 多线程开发框架
     
     参数:
     1.指向线程代号的指针
     2.线程的属性
     3.指向函数的指针
     4.传递给该函数的参数
     
     返回值
     - 如果是0,标示正确
     - 如果非0,标示错误代码
     void *   (*)      (void *)
     返回值   (函数指针)  (参数)
     void *  和OC中的  id 是等价的!     
     */
    NSString * str = @"hello Hank";
    pthread_t threadId;
    /**
     - 在 ARC 开发中,如果涉及到和C语言中的相同的数据类型进行转换,需要使用 __bridge "桥接"
     - 在 MRC 不需要
     */
    int result = pthread_create(&threadId, NULL, &demo, (__bridge  void *)(str));
    if (result == 0) {
        NSLog(@"OK");
    }else{
        NSLog(@"error %d",result);
    }
}

void * demo(void * param){
    NSLog(@"%@ %@",[NSThread currentThread],param);
    return NULL;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容