Modificar el código del programa
¿Importado? Java . util . concurrente . ¿clase? ¿Demo de StarPhaser? {
Sr. ¿Electricidad estática? ¿Vacío? principal(cadena?argumentos[])? {
¿Nueva fase de línea? ¿phsr? =?Nuevo? NewlinePhaser(4, 4);
¿Nuevo? StarThread(phsr);
¿Nuevo? StarThread(phsr);
¿Nuevo? StarThread(phsr);
¿Nuevo? StarThread(phsr);
}
}
¿Clase? ¿Nueva líneaPhaser? ¿extender? ¿Fáser? {
¿Privado? ¿Electricidad estática? int? firstLineStartNum = 4;
int? numFases
int? número de estrella = 0;
¿Público? NewlinePhaser(int?numParties,?int?fase)? {
Super(numParties);
numFases? =? etapa;
este . star num = firstLineStartNum;
}
¿Público? ¿Booleano? onAdvance(int?fase,?int?numParties)? {
sistema .println();? //?¿Imprimir? ¿respuesta? nueva línea
this . star num = firstLineStartNum-phase-1;
¿Regresar? ¿escenario? ==?numFases? -?1;? //?¿Detener? ¿después? numPhases
}
¿Público? ¿sincrónico? ¿Booleano? canPrintStart(){
este . starnum-;
¿Devolver? this.starNum gt=0;
}
}
¿Clase? ¿Hilo de estrellas? ¿Utensilios? ¿Ejecutable? {
¿Nueva fase de línea? phsr
StarThread(NewlinePhaser?p)? {
phsr? =?p;
¿Nuevo? hilo (esto). start();
}
¿Público? ¿Vacío? correr()? {
¿Cuándo? (!phsr.isTerminate())? {
if(phsr.canPrintStart()){
sistema fuera . phsr .llegaryesperaravance();
}
}
}