pthread 是属于 POSIX 多线程开发框架。它是c语言提供的一个跨平台的多线程解决方案。由于其在iOS编程中,操作比较麻烦,一般不用,这里介绍仅仅作为了解。
通过以下函数创建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 :传递给该函数的参数
返回值:
#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(桥接)
运行结果
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/supersonico/article/details/47334943