#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
[self performSelectorInBackground:@selector(syncMian) withObject:nil];
}
//异步函数+主队列:不会开线程,在主线程中串行执行
-(void)asyncMian
{
//1.获得主队列
dispatch_queue_t queue = dispatch_get_main_queue();
//2.使用异步函数添加任务到主队列中
dispatch_async(queue, ^{
NSLog(@"download1----%@",[NSThread currentThread]);
});
dispatch_async(queue, ^{
NSLog(@"download2----%@",[NSThread currentThread]);
});
dispatch_async(queue, ^{
NSLog(@"download3----%@",[NSThread currentThread]);
});
dispatch_async(queue, ^{
NSLog(@"download4----%@",[NSThread currentThread]);
});
}
//同步函数+主队列:
//同步函数:
//在当前线程中执行,不具备开线程的能力
//要求立刻马上执行
-(void)syncMian
{
NSLog(@"----%s---%@",__func__,[NSThread currentThread]);
//1.获得主队列
dispatch_queue_t queue = dispatch_get_main_queue();
//2.使用同步函数添加任务到主队列中
dispatch_sync(queue, ^{
NSLog(@"download1----%@",[NSThread currentThread]);
});
dispatch_sync(queue, ^{
NSLog(@"download2----%@",[NSThread currentThread]);
});
dispatch_sync(queue, ^{
NSLog(@"download3----%@",[NSThread currentThread]);
});
dispatch_sync(queue, ^{
NSLog(@"download4----%@",[NSThread currentThread]);
});
}
@end