将子线程里的任务放入串行队列,也可以保证不同子线程里的任务不会同时执行,也可以解决线程同步问题。
卖票和存钱/取钱问题:
- (instancetype)init {if (self = [super init]) {self.ticketQueue = dispatch_queue_create("ticketQueue", DISPATCH_QUEUE_SERIAL);self.moneyQueue = dispatch_queue_create("moneyQueue", DISPATCH_QUEUE_SERIAL);}return self;}- (void)__saleTicket {dispatch_sync(self.ticketQueue, ^{[super __saleTicket];});}- (void)__saveMoney {dispatch_sync(self.moneyQueue, ^{[super __saveMoney];});}- (void)__drawMoney {dispatch_sync(self.moneyQueue, ^{[super __drawMoney];});}
