多线程02---pThread简介
2015-08-07 10:08
573 查看
1.简介
pthread 是属于 POSIX 多线程开发框架。它是c语言提供的一个跨平台的多线程解决方案。由于其在iOS编程中,操作比较麻烦,一般不用,这里介绍仅仅作为了解。2.pthread的使用
通过以下函数创建pthread,在C语言中类型的结尾通常 _t/Ref,而且不需要使用 *:int pthread_create(pthread_t * __restrict, const pthread_attr_t * __restrict, void *(*)(void *), void * __restrict);
参数:
1. pthread_t * __restrict 线程代号的地址 2. onst pthread_attr_t * __restrict 线程的属性 3. 调用函数的指针 - void *(*)(void *) - 返回值 (函数指针)(参数) - void * 和 OC 中的 id 是等价的 4. void * __restrict :传递给该函数的参数
返回值:
如果是0,表示正确
如果是非0,表示错误码
3.代码实战:
#import "ViewController.h" #import <pthread.h> @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSString *str = @"MR"; pthread_t thread; pthread_create(&thread, NULL, &demo, (__bridge void *)(str)); } void* demo(void* params) { NSString *str = (__bridge NSString *)(params); for (int i = 0 ; i < 100; i++) { NSLog(@"%@",str); } return NULL; } @end
__bridge(桥接)
在 ARC 开发中,如果设计到和 C 语言中相同的数据类型进行转换时,需要使用 __bridge “桥接”
在 OC 中,如果是 ARC 开发,编译器会在编译的时候,自动根据代码结构,添加 retain, release, autorelease
ARC 只负责 OC 部分的代码,不负责 C 的代码,如果 C 语言的框架出现 retain/create/copy 字样的函数,都需要release
运行结果
相关文章推荐
- Python3写爬虫(四)多线程实现数据爬取
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- C#实现多线程的同步方法实例分析
- 浅谈chuck-lua中的多线程
- C#简单多线程同步和优先权用法实例
- C#多线程学习之(四)使用线程池进行多线程的自动管理
- C#多线程编程中的锁系统(三)
- C#多线程学习之(六)互斥对象用法实例
- 基于一个应用程序多线程误用的分析详解
- C#多线程学习之(三)生产者和消费者用法分析
- C#多线程学习之(一)多线程的相关概念分析
- C#多线程之Thread中Thread.IsAlive属性用法分析
- C#控制台下测试多线程的方法
- Ruby 多线程的潜力和弱点分析