力扣#1116. 打印零与奇偶数-[C++] 信号量解决多线程顺序输出问题 (28ms, 6.7MB)
题意解析
其实和前面两个题目一样, 也是顺序问题.
题目给定三个线程异步调用同一个对象的三个方法, 要求在输出 1 ~ n 的奇偶数前, 先输出 0。
对于每个输出, 我们先执行 zero() 方法, 后续执行的方法, 根据要输出的数的奇偶性而定
目标分析
给定一个数 n
我们假设一个数 x, 初始值设为 1, 从 0 开始, 逐次递增至 n
我们要确保先执行 zero() 输出 0 (zero() 方法没执行前, even() 和 odd() 方法必须阻塞, 而 zero()必须先执行)
执行完 zer
原创
2021-10-09 17:14:19 ·
237 阅读 ·
0 评论