- (IBAction)gcd1:(id)sender {
//用于全局并发队列
dispatch_queue_t qGlobal=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(qGlobal, ^{
int x=0;
while (x<20) {
NSLog(@"%@",[NSThread currentThread]);
[NSThread sleepForTimeInterval:2];
//多线程间参数传递
[self performSelector:@selector(showInfo:) onThread:[NSThread mainThread] withObject:@"global-queue dispathc-asyn" waitUntilDone:YES];
x++;
}
});
}
- (IBAction)gcd2:(id)sender {
//此队列与串行队列配合使用
dispatch_queue_t qCreate=dispatch_queue_create("q", nil);
dispatch_sync(qCreate, ^{
int x=0;
while (x<20) {
NSLog(@"%@",[NSThread currentThread]);
[NSThread sleepForTimeInterval:2];
//多线程间参数传递
[self performSelector:@selector(showInfo:) onThread:[NSThread mainThread] withObject:@"create-queue dispathc-syn" waitUntilDone:NO];
x++;
}
});
}
- (IBAction)gcd3:(id)sender {
//使用主队列创建的线程是没有意义的,因为一致不执行,这个还的请教高人指点 谢谢
dispatch_queue_t qMain=dispatch_get_main_queue();
dispatch_async(qMain, ^{
NSLog(@"test asyn+qMain :%@",[NSThread currentThread]);
});
dispatch_sync(qMain, ^{
NSLog(@"this is qmain create thread %@",[NSThread currentThread]);
});
}