Modificar el código del programa

Esto solo se puede lograr mediante la sincronización de subprocesos, y Yinxing ya no puede hacerlo incondicionalmente.

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

}

}

}

"../css/tongji.js">