iOS提供了NSThread NSOperation & NSOperationQueue GCD 来实现多线程编程。抽象程度由低到高,越抽象越简单
- (void)viewDidLoad {
[super viewDidLoad];
for (int i = 0; i < 100; i++) {
NSLog(@"==========%@===========%d",[NSThread currentThread],i);
if (i == 20) {
[NSThread detachNewThreadWithBlock:^{
for (int i = 0; i < 100; i++) {
NSLog(@"============%@================%d",[NSThread currentThread],i);
}
}];
}
}
}
打印结果如下:
2016-11-16 21:44:55.113 多线程[26278:749047] =========={number = 1, name = main}===========20
2016-11-16 21:44:55.115 多线程[26278:749142] ============{number = 3, name = (null)}================0
2016-11-16 21:44:55.117 多线程[26278:749142] ============{number = 3, name = (null)}================1
2016-11-16 21:44:55.119 多线程[26278:749142] ============{number = 3, name = (null)}================2
2016-11-16 21:44:55.120 多线程[26278:749142] ============{number = 3, name = (null)}================3
2016-11-16 21:44:55.115 多线程[26278:749047] =========={number = 1, name = main}===========21
2016-11-16 21:44:55.121 多线程[26278:749142] ============{number = 3, name = (null)}================4
2016-11-16 21:44:55.121 多线程[26278:749142] ============{number = 3, name = (null)}================5
可以看到程序中有两个线程在并发执行