iOS 多线程 pthread的简单使用——iOS 编码复习(五)(多线程3)
上篇文章我们讲到了什么是线程、进程。那么从这篇开始,我们就开始来看看iOS实现多线程的几种方法:
本文讲述第一种:pthread:
pthread是一套采用C语言编写的跨平台/可移植的多线程API。
简单使用下:
#import <pthread.h>
/// 点击屏幕创建一个线程
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
pthread_t thread; //创建线程
NSString *str = @"helloWorld"; //创建参数
// 参数1 线程编号的地址
// 参数2 线程的属性
// 参数3 线程要执行的函数(函数指针)(第三个参数可以,demo,*demo, 一般用&demo)
// 参数4 线程要执行的函数的参数
int result = pthread_create(&thread, NULL, &demo, (__bridge void *)(str));
// __bridge oc类型到c语言类型的一个转换
// void *p = (__bridge void *)(str);
NSLog(@"over %d",result);
}
/// 线程要执行的函数 传参数
void *(demo)(void *param){
NSString *str = (__bridge NSString *)(param);
NSLog(@"%@",str);
return NULL;
}
/// 点击屏幕创建一个线程
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
pthread_t thread; //创建线程
NSString *str = @"helloWorld"; //创建参数
// 参数1 线程编号的地址
// 参数2 线程的属性
// 参数3 线程要执行的函数(函数指针)(第三个参数可以,demo,*demo, 一般用&demo)
// 参数4 线程要执行的函数的参数
int result = pthread_create(&thread, NULL, &demo, (__bridge void *)(str));
// __bridge oc类型到c语言类型的一个转换
// void *p = (__bridge void *)(str);
NSLog(@"over %d",result);
}
/// 线程要执行的函数 传参数
void *(demo)(void *param){
NSString *str = (__bridge NSString *)(param);
NSLog(@"%@",str);
return NULL;
}
__bridge用于OC对象和CF对象的互转,并且不转换所有权
posted on 2016-03-10 14:59 hello_vzjw 阅读(154) 评论(0) 收藏 举报
浙公网安备 33010602011771号