改java_改Java程序代码

importjava.util.concurrent.Phaser;publicclassStarPhaserDemo{publicstaticvoidmain(Stringargs[]){Phaserphsr=newNewlinePhaser(4,3);newStarThread(phsr);newStarThread(phsr);ne...

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();

}

}

}

运行上面程序输出

****

****

****

修改后,不绘制矩形,而显示如下的星星三角形。像原来程序一样使用4个线程,每个线程在每个阶段最多负责绘制一个星星。

****

***

**

*

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值