iOS多线程(一)-- pthread
2016-05-14 本文已影响77人
eightzg
pthread是C语言的多线程解决方案,线程的生命周期需要程序员管理,在开发中几乎不用,读者可以作为了解。
- 新建一个新的xcode工程,在ViewController里面导入头文件
#import <pthread.h>
- 点击控制器的view就做开启一个线程,做一些耗时操作。
- 1是声明一个线程对象
- 2是开启线程,并且执行run方法,第一个参数要求传入线程对象的地址,所以加上&符号。第二个和第四个参数是对线程的参数配置,传入空值NULL即可。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// 创建线程
pthread_t thread; //1
pthread_create(&thread, NULL, run, NULL); //2
}
- 调用的耗时操作run方法实现如下:
void *run(void *data)
{
for (int i = 0; i<10000; i++) {
NSLog(@"touchesBegan----%d-----%@", i, [NSThread currentThread]);
}
return NULL;
}
- 在iOS多线程(零)中提到过,打印是耗时操作,会卡主主线程,但是通过开启子线程就不会卡主UI界面,同时可以在打印结果看到当前线程不是主线程。
