美文网首页
iOS多线程中的实际方案之一pthread

iOS多线程中的实际方案之一pthread

作者: 紫菱清风 | 来源:发表于2016-04-23 20:57 被阅读0次

pthread(现在几乎不用了)


pthread 是 POSIX 多线程开发框架,由于是跨平台的 C 语言框架。


pthread代码示例

// 创建线程,并且在线程中执行 demo 函数
- (void)pthreadDemo {
    /**
     参数:
     1> 指向线程标识符的指针,C 语言中类型的结尾通常 _t/Ref,而且不需要使用 *
     2> 用来设置线程属性
     3> 线程运行函数的起始地址
     4> 运行函数的参数

     返回值:
     - 若线程创建成功,则返回0
     - 若线程创建失败,则返回出错编号
     */
    pthread_t threadId = NULL;
    NSString *str = @"Hello Pthread";
    // 这边的demo函数名作为第三个参数写在这里可以在其前面加一个&,也可以不加,因为函数名就代表了函数的地址。
    int result = pthread_create(&threadId, NULL, demo, (__bridge void *)(str));

    if (result == 0) {
        NSLog(@"创建线程 OK");
    } else {
        NSLog(@"创建线程失败 %d", result);
    }
    // pthread_detach:设置子线程的状态设置为detached,则该线程运行结束后会自动释放所有资源。
    pthread_detach(threadId);
}

// 后台线程调用函数
void *demo(void *params) {
    NSString *str = (__bridge NSString *)(params);

    NSLog(@"%@ - %@", [NSThread currentThread], str);

    return NULL;
}

小结

  1. 在c语言中,没有对象的概念,对象类型是以-t/Ref结尾的,并且声明的似乎不需要用*
  2. c语言中的void * 和OC的id是等价的。
  3. 内存管理
  • 在 OC 中,如果是 ARC 开发,编译器会在编译时,根据代码结构, 自动添加 retain/release/autorelease
  • 但是,ARC 只负责管理 OC 部分的内存管理,而不负责 C 语言 代码的内存管理。
  • 因此,开发过程中,如果使用的 C 语言框架出现retain/create/copy/new 等字样的函数,大多都需要 release,否则会出现内存泄漏。
  1. 在混合开发时,如果在 C 和 OC 之间传递数据,需要使用 __bridge 进行桥接,桥接的目的就是为了告诉编译器如何管理内存。
  2. 桥接的添加可以借助 Xcode 的辅助功能添加。
  3. MRC 中不需要使用桥接。

相关文章

  • 多线程(2)——NSThread

    iOS中实现多线程的四种方案 pthread NSThread GCD NSOpreation Pthread:这...

  • iOS多线程中的实际方案之一pthread

    pthread(现在几乎不用了) pthread 是 POSIX 多线程开发框架,由于是跨平台的 C 语言框架。 ...

  • iOS——多线程GCD

    iOS中的多线程方案分为4种,从最早的pthread到基于GCD的NSOperation. 1、pthread:(...

  • iOS——多线程pthread 和 NSThread

    iOS中的多线程方案分为4种,从最早的pthread到基于GCD的NSOperation. 1、pthread:(...

  • pthread,NSThread的使用

    iOS中多线程的实现方案: 一、pthread的基本使用 pthread的基本使用(需要包含头文件) 二、NSTh...

  • iOS多线程

    iOS多线程 iOS中多线程的方案?有什么优缺点? 技术方案简介语言线程生命周期使用频率pthread1.一套通用...

  • pthread

    pthread pthread基本知识 实现多线程的技术方案之一. pthread是POSIX thread的简写...

  • IOS---多线程实现方案一 (pthread、NSThrea

    IOS多线程实现方案一 (pthread、NSThread) 在iOS开发中,多线程是我们在开发中经常使用的一门技...

  • iOS实录:GCD使用小结(一)

    2017-07-28iOS开发 导语:在iOS中,多线程方案有四种:pthread、NSThread、NSOper...

  • IOS2

    一、进程和线程:什么是进程? 什么是线程? 多线程原理? 二、多线程 iOS中多线程实现方案: 1.pthread...

网友评论

      本文标题:iOS多线程中的实际方案之一pthread

      本文链接:https://www.haomeiwen.com/subject/catfrttx.html