Thread java executando varias vezes o mesmo parametro com um unica thread iniciada

2 respostas
javafx
P

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;

}

<a class="mention" href="/u/override">@Override</a>

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

2 Respostas

S
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 );
P

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 );
    }
Criado 5 de outubro de 2017
Ultima resposta 5 de out. de 2017
Respostas 2
Participantes 2