利用队列进行游戏模拟
需求: 一共四个玩家一起进入游戏, 当所有人都进入游戏的时候开始读取数据
思路:
1. 选取并行队列
2. 如何实现特殊要求, 把并行队列用屏障隔开
屏障的作用: 把队列分成上下部分开执行
<span style="font-size:14px;">#pragma mark - 模拟游戏开始的线程操作(利用屏障 dispatch_barrier_async() ) - (void)gameStart { // 需求: 一共四个玩家一起进入游戏, 当所有人都进入游戏的时候开始读取数据 /* 思路: 1. 选取并行队列 2. 如何实现特殊要求, 把并行队列用屏障隔开 屏障的作用: 把队列分成上下部分开执行 */ // 创建自定义并行队列 // 参数1标识符随意起 dispatch_queue_t myQueue = dispatch_queue_create("com.nyl.ganmeQueue", DISPATCH_QUEUE_CONCURRENT); // 添加任务1 dispatch_async(myQueue, ^{ NSLog(@"玩家1 进入游戏"); }); // 添加任务2 dispatch_async(myQueue, ^{ NSLog(@"玩家2 进入游戏"); }); // 添加任务3 dispatch_async(myQueue, ^{ NSLog(@"玩家3 进入游戏"); }); // 添加屏障⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️ dispatch_barrier_async(myQueue, ^{ NSLog(@"都进入了, 可以开始, 读取玩家信息了"); }); // 添加读取信息的任务1 dispatch_async(myQueue, ^{ NSLog(@"玩家1 读取游戏!!"); }); // 添加读取信息的任务2 dispatch_async(myQueue, ^{ NSLog(@"玩家2 读取游戏!!"); }); // 添加读取信息的任务3 dispatch_async(myQueue, ^{ NSLog(@"玩家3 读取游戏!!"); }); //