标签:
下面主要说一下线程任务执行的顺序
<span style="font-size:18px;">#define DISPATCH_QUEUE_PRIORITY_HIGH 2 高 #define DISPATCH_QUEUE_PRIORITY_DEFAULT 0 中 #define DISPATCH_QUEUE_PRIORITY_LOW (-2)<span style="white-space:pre"> </span>低 #define DISPATCH_QUEUE_PRIORITY_BACKGROUND 最低</span>
<span style="font-size:14px;">- (void)thread_gcd_first{ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSLog(@"DISPATCH_QUEUE_PRIORITY_DEFAULT--2"); }); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ NSLog(@"DISPATCH_QUEUE_PRIORITY_HIGH--1"); }); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{ NSLog(@"DISPATCH_QUEUE_PRIORITY_LOW--3"); }); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ NSLog(@"DISPATCH_QUEUE_PRIORITY_BACKGROUND--4"); }); }</span>
<span style="font-size:14px;">- (void)thread_gcd_second{ //创建串行队列 --- DISPATCH_QUEUE_SERIAL dispatch_queue_t serialQueue = dispatch_queue_create("fuzongjian", DISPATCH_QUEUE_SERIAL); //将队列放到全局队列中, dispatch_set_target_queue(serialQueue, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0)); dispatch_async(serialQueue, ^{ NSLog(@"fu--2 ---%@",[NSThread currentThread]); }); dispatch_async(serialQueue, ^{ NSLog(@"zong--2 ---%@",[NSThread currentThread]); }); }</span>
<span style="font-size:14px;">- (void)thread_gcd_third{ //创建串行队列 --- DISPATCH_QUEUE_CONCURRENT dispatch_queue_t serialQueue = dispatch_queue_create("fuzongjian", DISPATCH_QUEUE_CONCURRENT); //将队列放到全局队列中, dispatch_set_target_queue(serialQueue, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0)); dispatch_async(serialQueue, ^{ NSLog(@"fu--2"); }); dispatch_async(serialQueue, ^{ NSLog(@"zong--2"); }); }</span>输出结果如下,可以看出两次输出的number不一样,即多线程执行。
标签:
原文地址:http://blog.csdn.net/fuzongjian/article/details/51339567