首页 > 代码库 > GCD
GCD
//
// ZBMainViewController.m
// TestProject
//
// Created by 张先森 on 14/12/5.
// Copyright (c) 2014年 zhibin. All rights reserved.
//
#import "ZBMainViewController.h"
@interface ZBMainViewController ()
@end
@implementation ZBMainViewController
- (void)viewDidLoad {
[super viewDidLoad];
// [self InitControls];
[self InitControls];
}
//异步添加到并发队列 开启新线程
-(void)InitControls{
dispatch_queue_t queue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
NSLog(@"%@c测试1",[NSThread currentThread]);
});
dispatch_async(queue, ^{
NSLog(@"%@c测试2",[NSThread currentThread]);
});
dispatch_async(queue, ^{
NSLog(@"%@c测试3",[NSThread currentThread]);
});
}
//异步添加到同步线程 会开启一个线程
-(void)InitControls2{
dispatch_queue_t queue=dispatch_queue_create("zhibin", NULL);
dispatch_async(queue, ^{
NSLog(@"%@c测试1",[NSThread currentThread]);
});
dispatch_async(queue, ^{
NSLog(@"%@c测试2",[NSThread currentThread]);
});
dispatch_async(queue, ^{
NSLog(@"%@c测试3",[NSThread currentThread]);
});
}
//同步添加到并发线程中 不开启新线程 线程失去并发能力
-(void)InitControls3{
dispatch_queue_t queue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_sync(queue, ^{
NSLog(@"%@c测试1",[NSThread currentThread]);
});
dispatch_sync(queue, ^{
NSLog(@"%@c测试2",[NSThread currentThread]);
});
dispatch_sync(queue, ^{
NSLog(@"%@c测试3",[NSThread currentThread]);
});
}
//同步添加串行队列 不会开启新线程
-(void)InitControls4{
dispatch_queue_t queue=dispatch_queue_create("zhibin", NULL);
dispatch_sync(queue, ^{
NSLog(@"%@c测试1",[NSThread currentThread]);
});
dispatch_sync(queue, ^{
NSLog(@"%@c测试2",[NSThread currentThread]);
});
dispatch_sync(queue, ^{
NSLog(@"%@c测试3",[NSThread currentThread]);
});
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
GCD