![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 69
TogeWu
这个作者很懒,什么都没留下…
展开
-
GCD—队列组
#import "ViewController.h" //宏定义全局并发队列 #define global_quque dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) //宏定义主队列 #define main_queue dispatch_get_main_queue() @interface Vi原创 2015-07-17 20:29:28 · 337 阅读 · 0 评论 -
NSOperationQueue—高级功能
@interface ViewController () @property (nonatomic, strong) NSOperationQueue *opQueue; @end @implementation ViewController - (NSOperationQueue *)opQueue { if (_opQueue == nil) { _opQueue原创 2015-07-17 20:03:10 · 478 阅读 · 0 评论 -
GCD—简单代码
/** 线程间通讯 */ - (void)gcdDemo3 { // 2. 指定任务执行方法 dispatch_async(dispatch_get_global_queue(0, 0), ^{ // 耗时操作 NSLog(@"%@", [NSThread currentThread]); // 3. 在主线程原创 2015-07-17 20:14:59 · 525 阅读 · 0 评论 -
GCD—代码演练
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self gcdDemo9]; } #pragma mark - 全局队列 // MARK: 全局队列(本质上就是并发队列) // - (void)gcdDemo9 { /** 参数 1. 涉及到系统适配 iO原创 2015-07-17 20:19:50 · 407 阅读 · 0 评论 -
GCD—读者写者锁
多线程运行程序时如果不做一些处理难免会出现对一个属性同时读写的线程安全问题,为了解决此问题,GCD 通过用 dispatch barriers 创建一个读者写者锁 提供了一个优雅的解决方案。 Dispatch barriers 是一组函数,在并发队列上工作时扮演一个串行式的瓶颈。使用 GCD 的障碍(barrier)API 确保提交的 Block 在那个特定时间上是指定队列上唯一被执行的条目原创 2015-07-17 19:30:32 · 719 阅读 · 0 评论 -
GCD—互斥锁实现单例
GCD中提供了dispatch_once和@synchrornized两种类型互斥锁,解决线程间的安全问题,个人强烈建议使用dispatch_once,下面用实现单例的代码简单演示两种互斥锁(代码相当简单) dispatch_once + (instancetype)oncetokenPerson { static id person; static dispatch_once原创 2015-07-17 20:40:42 · 552 阅读 · 0 评论 -
NSOperationQueue—总结
@interface ViewController () /** 全局操作队列,调用所有的异步操作 */ @property (nonatomic, strong) NSOperationQueue *opQueue; @end @implementation ViewController /** NSOperation 是苹果公司大力推荐的"并发"技术!程序员已经不在需要关心线程以及线程的生原创 2015-07-17 19:56:51 · 451 阅读 · 0 评论 -
NSThread—创建
NSThread原创 2015-07-17 20:07:58 · 329 阅读 · 0 评论