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
}
void *run(void *data)
{
for (int i = 0; i<10000; i++) {
NSLog(@"touchesBegan----%d-----%@", i, [NSThread currentThread]);
}
return NULL;
}
- 在iOS多线程(零)中提到过,打印是耗时操作,会卡主主线程,但是通过开启子线程就不会卡主UI界面,同时可以在打印结果看到当前线程不是主线程。
Paste_Image.png
尽管pthread不是主流的多线程实现方案,但是作为优秀的程序员还是有必要了解一下的~在接下来的几篇教程中会继续讲解另外三种多线程的实现方案。
网友评论