NSThread:每个NSThread对象对应一个线程,量级较轻。
优点:轻量级,使用简单
缺点:需要自己管理线程的生命周期,线程同步,加锁,睡眠以及唤醒等,线程同步对数据的加锁有一定的系统开销
NSThread常用方法:
1.detachNewThreadSelector类方法,直接创建
示例:
- (void)threadLoad{
for (UIImageView *imageView in self.imageViewSet) {
// 派发一个线程---类方法detachNewThreadSelector
[NSThread detachNewThreadSelector:@selector(threadLoadImage:) toTarget:self withObject:imageView];
}
}
2.实例方法,需要start才能启动实例出来的线程
示例:
- (void)threadLoad{
for (UIImageView *imageView in self.imageViewSet) {
// 实例化线程
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(threadLoadImage:) object:imageView];
[thread start];
}
}
缺点:控制线程的声明周期比较困难,控制并发线程数困难,控制先后顺序困难
[NSThread currentThread] 可以返回当前运行的线程,
num = 1
说明是主线程(在任何多线程技术中【NSThread、NSOperation、GCD】,都可以使用此方法查看当前线程情况)
持续完善中……