标签:
1.基本概念
pthread是POSIX多线程开发框架,是跨平台的C语言框架,在苹果的头文件中并没有太多的注释
2.演练
#import <pthread.h>
// 创建线程,并且在线程中执行 demo 函数
- (void)pthreadDemo {
/**
参数:
1> 指向线程标识符的指针,C 语言中类型的结尾通常 _t/Ref,而且不需要使用 *
2> 用来设置线程属性
3> 新建立的线程执行代码的函数
4> 运行函数的参数
返回值:
- 若线程创建成功,则返回0
- 若线程创建失败,则返回出错编号
*/
pthread_t threadId = NULL;
NSString *str = @"Hello Pthread";
int result = pthread_create(&threadId, NULL, demo, (__bridge void *)(str));
if (result == 0) {
NSLog(@"创建线程 OK");
} else {
NSLog(@"创建线程失败 %d", result);
}
}
// 后台线程调用函数
void *demo(void *params) {
NSString *str = (__bridge NSString *)(params);
NSLog(@"%@ - %@", [NSThread currentThread], str);
return NULL;
}
小结:
在C语言中并没有对象的概念,对象是以结构体的方式来实现的
C语言中的void*和OC中的id是等价的
混合开发时,如果在C和OC之间进行数据传递,需要用_bridge进行桥接,桥接的目的是为了告诉编译器如何管理内存
标签:
原文地址:http://www.cnblogs.com/bixiangbei/p/5738470.html