标签:
下面主要说一下线程任务执行的顺序
<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