iOS开发CGD买票
2015-09-22 17:31
399 查看
@interface ViewController ()
{
int _totalCount; // 火车票总票数
int _surplusCoynt; // 剩余票数
NSLock *_lock; // 互斥锁
}
@end
[objc]
view plaincopy
// 设置剩余票数
_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];
});
[objc]
view plaincopy
#pragma mark - 售票方法
- (void)saleTickets:(dispatch_queue_t)queue
{
while (_surplusCoynt > 0) {
[_lock lock]; // 获取互斥锁并且添加
const charchar *queueLabel = dispatch_queue_get_label(queue);
NSString *label = [NSString stringWithUTF8String:queueLabel];
NSLog(@"当前火车票由%@售出,余票:%d张", label, _surplusCoynt);
_surplusCoynt--;
[_lock unlock];
}
}
{
int _totalCount; // 火车票总票数
int _surplusCoynt; // 剩余票数
NSLock *_lock; // 互斥锁
}
@end
[objc]
view plaincopy
// 设置剩余票数
_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];
});
[objc]
view plaincopy
#pragma mark - 售票方法
- (void)saleTickets:(dispatch_queue_t)queue
{
while (_surplusCoynt > 0) {
[_lock lock]; // 获取互斥锁并且添加
const charchar *queueLabel = dispatch_queue_get_label(queue);
NSString *label = [NSString stringWithUTF8String:queueLabel];
NSLog(@"当前火车票由%@售出,余票:%d张", label, _surplusCoynt);
_surplusCoynt--;
[_lock unlock];
}
}
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- iOS开发之路--微博“更多”页面
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- IOS开发第三方语音-微信语音
- iOS开发之路--微博OAuth授权_取得用户授权的accessToken
- 基于UIControl控件实现ios点赞功能