多线程 打印零与奇偶数

题目:

相同的一个 ZeroEvenOdd 类实例将会传递给三个不同的线程:

线程 A 将调用 zero(),它只输出 0 。
线程 B 将调用 even(),它只输出偶数。
线程 C 将调用 odd(),它只输出奇数。
每个线程都有一个 printNumber 方法来输出一个整数。请修改给出的代码以输出整数序列 010203040506... ,其中序列的长度必须为 2n。

 

思路: 

  用信号量进行并发控制 Semaphore 

  0 初始化为1个信号量

  奇偶数 分别初始化为0个信号量

  待 0 执行完后,释放一个奇数 或 偶数 信号量 进行数字输出,输出完再释放0 信号量

 


 

(一) 代码

   

 

 

 


 

 

 

 

      但愿人长久,千里共婵娟 !!

 

posted @ 2021-04-17 14:28  朝才  阅读(170)  评论(0编辑  收藏  举报