iOS疯狂详解之GCD卖火车票
来源:互联网 发布:win10用什么优化软件 编辑:程序博客网 时间:2024/05/16 08:57
@interface ViewController (){ int _totalCount; // 火车票总票数 int _surplusCoynt; // 剩余票数 NSLock *_lock; // 互斥锁}@end
// 设置剩余票数 _surplusCoynt = 100; _lock = [[NSLock alloc] init]; // 创建互斥锁,多个线程共享使用 // 自己创建并行队列 dispatch_queue_t queue1 = dispatch_queue_create("火车站", DISPATCH_QUEUE_CONCURRENT); dispatch_async(queue1, ^{ [self saleTickets:queue1]; }); dispatch_queue_t queue2 = dispatch_queue_create("代售点", DISPATCH_QUEUE_CONCURRENT); dispatch_async(queue2, ^{ [self saleTickets:queue2]; });
#pragma mark - 售票方法- (void)saleTickets:(dispatch_queue_t)queue{ while (_surplusCoynt > 0) { [_lock lock]; // 获取互斥锁并且添加 const char *queueLabel = dispatch_queue_get_label(queue); NSString *label = [NSString stringWithUTF8String:queueLabel]; NSLog(@"当前火车票由%@售出,余票:%d张", label, _surplusCoynt); _surplusCoynt--; [_lock unlock]; }}
0 0
- iOS疯狂详解之GCD卖火车票
- iOS疯狂详解之GCD
- iOS疯狂详解之多线程GCD
- iOS疯狂详解之ASIHTTPRequest
- iOS疯狂详解之开源库
- iOS疯狂详解之NSFileHandle
- iOS多线程之GCD详解
- IOS开发之GCD详解
- 【IOS多线程】之GCD详解
- 【IOS多线程】之GCD详解
- ios激情详解之GCD
- iOS疯狂详解之Svn基本命令
- iOS疯狂详解之视频播放MPMoviePlayerViewController
- iOS疯狂详解之NSFileManager使用
- iOS疯狂详解之NSURLSession使用
- 疯狂讲解之GCD线程
- ios开发-多线程GCD之详解
- iOS超精细详解之GCD
- 使用CryptoAPI获取证书扩展属性之三:“颁发机构密钥标识”和"使用者密钥标识"
- Android6.0新特性
- python-time
- 启动oracle
- 2016年京东一面问题总结
- iOS疯狂详解之GCD卖火车票
- exit和return的区别 http://blog.csdn.net/firefly_2002/article/details/7960595
- vs2010 OpenGL+glfw+glew+glm
- 杭电1023Train Problem II
- 在Android中使用IOC框架让代码更清爽
- delphi Xe系列 android 开发 真机 连接不上的问题
- 聊聊Android中的ListView控件
- ARM裸机之体系架构介绍一
- 用MFC实现串口编程