ios-FMDB多线程的使用技巧
来源:互联网 发布:淘宝页面怎么设计 编辑:程序博客网 时间:2024/06/02 05:31
先看一段代码
dispatch_queue_t queue1=dispatch_queue_create("hh", DISPATCH_QUEUE_SERIAL); dispatch_queue_t queue= dispatch_queue_create("hl", DISPATCH_QUEUE_CONCURRENT); for(int i=0;i<10;i++) { dispatch_async(queue, ^{ dispatch_sync(queue1, ^{ NSLog(@"hello %d %@",i,[NSThread currentThread]); }); }); }执行效果如下图所示,也就是说开启了多个线程,任务都是顺序执行完成的,这里相当于就是,异步执行了这些任务,但是我们仍然可以保证这些任务被顺序的执行,这个主要是被用到在数据库操作中,因为如果耗时的操作我们要放到子线程上执行,如果放到主线程上执行,那就会造成界面的卡顿,所以数据库操作要保证同一个时间,只有一个操作。
在FMDB默认情况下都是在主线程上执行的。
还有一点,串行队列不能嵌套使用,就比如如下代码所示
这个就相当于先把从NSLog(@"hello")这句以及往下的语句放到串行队列中,然后下面又遇到dispatch_sync的时候,又添加了个任务到队列中,然后又是同步执行的,也就是说需要把第一个任务执行完,才能继续执行后面的任务,而后面的任务需要等把第一个任务执行完,再去执行,所以就相互等待了。
dispatch_queue_t queue1=dispatch_queue_create("hh", DISPATCH_QUEUE_SERIAL); dispatch_sync(queue1, ^{ NSLog(@"hello"); dispatch_sync(queue1, ^{ NSLog(@"kko"); }); });
阅读全文
0 0
- ios-FMDB多线程的使用技巧
- iOS FMDB的使用
- iOS FMDB的使用
- Ios fmdb的使用
- iOS FMDB的使用
- IOS中FMDB的使用
- IOS -- FMDB的使用心得
- iOS FMDB的简单使用
- iOS开发:FMDB的使用
- iOS开发~FMDB的使用
- iOS中FMDB的使用
- iOS数据库FMDB的使用
- FMDB 的使用(二)多线程问题
- iOS 第三方类库FMDB的使用
- iOS开发----FMDB的简单使用
- iOS FMDB的操作使用原理
- 【IOS开发】FMDB的简单使用
- IOS FMDB框架 简单粗暴的使用
- 《深入理解Nginx》读书笔记1:架构设计
- 064 不定积分之分部积分法 case 1-6 总结
- 春招准备日记day01
- 如何开发创建并玩转属于自己区块链的数字货币
- 属性动画_
- ios-FMDB多线程的使用技巧
- java设计模式(精通系列)-策略模式(Strategy)
- TabLayout横向滑动菜单code
- 实现简单登录注册
- [线段树][简单复杂度分析]LOJ#6029. 「雅礼集训 2017 Day1」市场
- okhttp封装_
- 摇骰子(随机数)2种方法
- 漏洞利用的细节
- IBM Ponder This May 2017 Letter gaps