1 //GCD (grand central dispatcher)
2 //队列
3
4 //串行队列
5 //前面的现场执行完成,才会开始执行后面加入的线程
6 //并行队列
7 //前面加入的线程和后面加入的线程同时执行
8
9 //1.主线程所在的串行队列
10 //系统自动创建这个队列 直接使用就行
11 dispatch_queue_t mainQueue = dispatch_get_main_queue();
12
13 //2.全局的并行队列
14 //系统自动创建这个队列 直接使用就行
15 /*
16 第一个参数:队列的优先级
17 第二个参数:Apple公司保留的参数,传0就可以
18 */
19 dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
20
21 //3.自己创建的队列
22 //3.1串行队列
23 //参数一:队列的标识符
24 //参数二:队列的类型(串行还是并行)
25 //DISPATCH_QUEUE_SERIAL 表示的是串行队列
26 dispatch_queue_t serialQueue = dispatch_queue_create("serialQueue", DISPATCH_QUEUE_SERIAL);
27 //3.2并行队列
28 dispatch_queue_t concurrentQueue = dispatch_queue_create("concurrentQueue", DISPATCH_QUEUE_CONCURRENT);
29
30 //二.使用GCD创建线程
31 //参数一:线程执行的队列
32 //参数二:线程的执行体
33 //1.同步的提交方式
34 dispatch_sync(globalQueue, ^{
35 for (int i=0; i<100; i++) {
36 NSLog(@"线程一:%d",i);
37 }
38 });
39 //2.异步的提交方式
40 dispatch_async(globalQueue, ^{
41 for (int i=0; i<100; i++) {
42 NSLog(@"线程二:%d",i);
43 }
44 });
45 }