您的位置:首页 > 移动开发 > IOS开发

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];  
    }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios ios开发 CGD