首页新闻找找看学习计划

修改一个Java程序

0
悬赏园豆:100 [待解决问题]
import java.util.concurrent.Phaser;
public class StarPhaserDemo {
    public static void main(String args[]) {
        Phaser phsr = new NewlinePhaser(4,3);
        new StarThread(phsr);
        new StarThread(phsr);
        new StarThread(phsr);
        new StarThread(phsr);
    }
}
class NewlinePhaser extends Phaser {
   int numPhases;
   public NewlinePhaser(int numParties, int phases) {
       super(numParties);
       numPhases = phases;
   }
   public boolean onAdvance(int phase, int numParties) {
       System.out.println(); // print a newline
       return phase == numPhases-1; // stop after numPhases
    }
}
class StarThread implements Runnable {
   Phaser phsr;
   StarThread(Phaser p) {
      phsr = p;
      new Thread(this).start();
    }
    public void run() {
        while (!phsr.isTerminated()) {
            System.out.print('*');
            phsr.arriveAndAwaitAdvance();
         }
     }
}

 

运行程序后会看到下列输出:
****
****
****
现要求修改此程序:

1.要求不绘制矩形,而显示如下的星星三角形。
****
***
**
*
2.像原来程序一样使用4个线程,每个线程在每个阶段最多负责绘制一个星星。
我就是这样子的主页 我就是这样子 | 初学一级 | 园豆:4
提问于:2015-10-16 09:45
< >
分享
所有回答(3)
0

小朋友,作业要自己写

羽商宫 | 园豆:2493 (老鸟四级) | 2015-10-16 10:12
0

楼主还有机会接触多线程,真幸运,我到现在都还没有机会接触这个多线程,还是自己写吧,有好处的!

晓菜鸟 | 园豆:2564 (老鸟四级) | 2015-10-17 16:19
0

还是多线程的啊

Chars-D | 园豆:252 (菜鸟二级) | 2015-11-26 11:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册