浏览 3107 次
锁定老帖子 主题:关于并发同步对象的问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2015-11-06
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个线程,每个线程在每个阶段最多负责绘制一个星星。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |