主线程执行耗时操作 阻塞主线程
- (IBAction)buttonClick {
for (NSInteger i = 0; i<50000; i++) {
NSLog(@"------buttonClick---%zd", i);
}
}
用户点击了按钮,在打印完50000个数字之前,用户与页面UI控件的交互被阻塞
pthread
#import "ViewController.h"
#import <pthread.h>
@interface ViewController ()
@end
@implementation ViewController
void * run(void *param)
{
for (NSInteger i = 0; i<50000; i++) {
NSLog(@"------buttonClick---%zd--%@", i, [NSThread currentThread]);
}
return NULL;
}
- (IBAction)buttonClick:(id)sender {
pthread_t thread;
pthread_create(&thread, NULL, run, NULL);
pthread_t thread2;
pthread_create(&thread2, NULL, run, NULL);
}
@end
pthread:纯C
一套通用的多线程API
适用于Unix\Linux\Windows等系统
跨平台\可移植
使用难度大,程序员管理线程生命周期,在实际开发中几乎不用