GCD
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 }