pthread是一套c语言多线程接口。
创建线程的方法如下:
int pthread_create(pthread_t _Nullable * _Nonnull __restrict,
const pthread_attr_t * _Nullable __restrict,
void * _Nullable (* _Nonnull)(void * _Nullable),
void * _Nullable __restrict);
第一个参数为线程pthread_t地址,第二个为线程配置参数,可设置为NULL,第三个为函数指针,第四个为线程函数传递的参数,可设置为NULL。
简单用法如下:
void* threadFunction(void *para) {
NSLog(@"threadFunction %@",[NSThread currentThread]);
NSLog(@"%@",para);
return nil;
}
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
int result = pthread_create(&_thread, NULL, threadFunction, @"new thread");
if (result == 0) {
NSLog(@"线程创建成功");
}else{
NSLog(@"线程创建失败 %d",result);
}
NSLog(@"%@",[NSThread currentThread]);
pthread_detach(_thread);
}
其中pthread_detach函数为设置子线程的状态设置为 detached,该线程运行结束后会自动释放所有资源。
也可以在线程最后调用以下方法结束线程
pthread_exit(NULL);