面试题 - 使用线程交替打印奇数偶数
这世上有三样东西是别人抢不走的:一是吃进胃里的食物,二是藏在心中的梦想,三是读进大脑的书
- 分析题目。需要使用两个线程交替打印奇偶数。
- 使用同步锁解决这个问题
- 使用信号量来实现交替打印
- 定义两个信号量,一个奇数信号量,一个偶数信号量,都初始化为1
- 先用掉偶数的信号量,因为要让奇数先启动,等奇数打印完再释放
信号量实现
- 具体实现思路:
- 定义两个信号量,一个奇数信号量,一个偶数信号量,都初始化为1
- 先用掉偶数的信号量,因为要让奇数先启动,等奇数打印完再释放
- 具体流程就是 第一次的时候先减掉偶数的信号量 奇数线程打印完成以后用掉奇数的信号量。然后释放偶数的信号量如此循环