GCD的基本使用
来源:互联网 发布:柔术 知乎 编辑:程序博客网 时间:2024/05/24 05:37
gcd 的特性以及优缺点在此就不多说了
直接上代码:
先声明主子线程对象
dispatch_queue_t _main;
dispatch_queue_t _queue;
实例化他们
//主线程对列也称为串行队列
_main=dispatch_get_main_queue();
//子线程队列也称为并行队列
_queue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//先设置一个事件方法
-(void)doSomething:(NSString *)str
{
[NSThreadsleepForTimeInterval:1];
NSLog(@"%@",str);
}
//研究主线程特征
-(void)func1
{
dispatch_async(_main, ^{
[self doSomething:@"A"];
});
dispatch_async(_main, ^{
[self doSomething:@"B"];
});
dispatch_async(_main, ^{
[self doSomething:@"C"];
});
dispatch_async(_main, ^{
[self doSomething:@"D"];
});
}
//研究子线程队列
-(void)func2
{
dispatch_async(_queue, ^{
[self doSomething:@"A"];
});
dispatch_async(_queue, ^{
[self doSomething:@"B"];
});
dispatch_async(_queue, ^{
[self doSomething:@"C"];
});
dispatch_async(_queue, ^{
[self doSomething:@"D"];
});
}
这时,我们观察两个时间戳,就知道是怎么回事了....
//研究自定义队列
-(void)func3
{
//DISPATCH_QUEUE_CONCURRENT并行队列
//DISPATCH_QUEUE_SERIAL 串行队列
dispatch_queue_t customQueue=dispatch_queue_create("a", DISPATCH_QUEUE_CONCURRENT);
dispatch_async(customQueue, ^{
[self doSomething:@"A"];
});
dispatch_async(customQueue, ^{
[self doSomething:@"B"];
});
//添加分割线
dispatch_barrier_async(customQueue, ^{
NSLog(@"============");
});
dispatch_async(customQueue, ^{
[self doSomething:@"C"];
});
dispatch_async(customQueue, ^{
[self doSomething:@"D"];
});
}
- GCD的基本使用
- GCD的基本使用
- GCD的基本使用
- GCD的基本使用
- GCD的基本使用
- iOS GCD的基本使用
- iOS开发多线程-GCD的基本使用
- 网络多线程-GCD的基本使用
- 网络多线程-GCD的基本使用(2)
- iOS中GCD的基本使用
- Swift-GCD的基本使用(Swift 3.0)
- GCD的基本使用及介绍
- 65 GCD基本使用
- 多线程:GCD 基本使用
- GCD的基本用法
- GCD使用三部曲 - 基本用法
- 07-掌握-GCD基本使用
- GCD(多线程)基本使用!!!
- 图像处理基础知识(一)
- 第九周--项目3稀疏矩阵的三元组表示的实现及应用(1)
- 关于VC6的map文件和RTP文件
- 分享到微信的消息跳转到第三方APP
- kill process
- GCD的基本使用
- 二叉树的遍历--递归和非递归
- 径向基函数(RBF)神经网络
- multithreading--守护(后台)线程的作用,及其与前台线程的关系
- 初学Linux(1)
- POJ 2247 小DP?
- IOS开发笔记25-控件的基本使用
- jq实现方向轮播图-简易版
- 如何在AS3中引用swf中的元件、图片等资源以及布局信息