扬庆の博客

多线程之线程组

字数统计: 141阅读时长: 1 min
2022/03/24 Share

线程组

dispatch_group_async

使用场景:

在n个耗时并发任务都完成后,再去执行接下来的任务(通过notify)。 比如: 在n个网络请求完成后去刷新UI页面。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.

// 并发队列
dispatch_queue_t concurrentQueue = dispatch_queue_create("test1", DISPATCH_QUEUE_CONCURRENT);

// 线程组
dispatch_group_t group = dispatch_group_create();


for (NSInteger i = 0; i < 10; i++) {

dispatch_group_async(group, concurrentQueue, ^{

sleep(1);
NSLog(@"%zd:网络请求",i);
});
}

dispatch_group_notify(group, concurrentQueue, ^{
NSLog(@"数据获取完毕,刷新UI");
});

}

打印执行结果

dispatch_group

CATALOG
  1. 1. 线程组