Pessoal estou com um problema, no qual crio a thread passando parametros e de primeiro tudo bem Funciona,
Mas quando o parametro que é volatile muda seu valor ele ainda continua com o valor da criação da instancia.
Tem alguma forma de passar parametros varias vezes com valores diferentes para mesma thread.
exemplo:
class SuaClasse extends Thread {
private String param1;
private volatile boolean status = false;
public SuaClasse(String param1,boolean status.){
this.param1 = param1;
this.status = status;
}
@Override
public void run(){
while(status){
System.out.println(“Rodando”);
}
}
client
volatile boolean status = false;
status = true;
SuaClasse classe = new SuaClasse(10,status);
classe.start();
como fazer
class SuaClasse extends Thread {
private String param1;
private boolean status;
public SuaClasse(String param1,boolean status.){
this.param1 = param1;
this.status = status;
}
public void alterarStatus(boolean novoStatus) {
status = novoStatus;
}
@Override
public void run(){
while (status) {
System.out.println("Rodando (param1 = " + param1 + ", status = " + status + ")");
Thread.yield();
}
}
}
Client
SuaClasse minhaThread = new SuaClasse("10", true);
minhaThread.start();
Thread.sleep(1000);
minhaThread.alterarStatus( false );
Thread.sleep(1000);
minhaThread.alterarStatus( true );
Este Trecho do codigo é utilizado em uma função. Quando altero a variável da classe boolean status não funciona.
Mas valeu
public void pararProcesso( String message){
SuaClasse minhaThread = new SuaClasse(message, status);
minhaThread.start();
minhaThread.alterarStatus( status );
}