您好,关于打印0到底是奇数还是偶数偶数放纸顺序,是打印偶数

每个线程都有一个 printNumber 方法来输出一個整数请修改给出的代码以输出整数序列 ... ,其中序列的长度必须为 2n

输出:"0102"说明:三条线程异步执行,其中一个调用 zero()另一个线程调用 even(),最后一个线程调用odd()正确的输出为 "0102"。示例 2:

  我们在1115题的时候已经说明如果线程之间存在前驱关系的话可以用信号量来解决。我们先分析以下线程间的执行顺序:

  可见结果是2*n个数字,其中有n个零剩下的就是0到底是奇数还是偶数和偶数对半。于本题来说打印0是優先分配资源进行执行的打印0到底是奇数还是偶数和偶数都是受限制的。优先执行的结束后释放受限执行的线程的资源受限线程才可繼续执行,所以设置odd和even的资源初始值(即信号量)为0每当零打印完成后,按照打印顺序为受限线程释放资源odd和even执行完成后,需要释放咑印零的资源使得循环继续。

  一定要理解信号量这是多线程编程的关键!!!


华软声明:本内容来自网络如囿侵犯您版权请来信指出,本站立即删除

我要回帖

更多关于 0到底是奇数还是偶数 的文章

 

随机推荐