Tenho que implementar um semaforo utilizando THREADS, onde é necessário imprimir na tela o processo que está executando e uma mensagem do processo que está em espera, dizendo que esse está aguardando, minha dúvida é como testar se esse processo está em espera para poder mostrar a mensagem?
Segue o código que estou desenvolvendo para isso, a principio está muito simples.
import java.io.;
/ Classe que irá implementar o processo de soma, utilizando
-
Threads, conforme gerencia por TSL <em>/ public class Processo1 implements Runnable { /</em> Atributos de execução */ private int valor1; private int valor2; private int resultado; public Processo1(){ valor1 = 5; valor2 = 2; resultado = 0; }
//Método herdado da interface Runnable utilizado para manipular Threads da linguagem Java public void run(){ //Enquanto este processo estiver acessando a thread será efetuado o processo, //e o outro processo fica em espera while(true){ soma(); subtracao(); }
} synchronized public void soma(){ resultado = valor1 + valor2; System.out.println(“Processo soma executado = " + resultado); System.out.println(“Processo subtracao em espera”); System.out.println(”--------------------------------------\n"); }
synchronized public void subtracao(){ resultado = valor1 - valor2; System.out.println(“Processo subtracao executado = " + resultado); System.out.println(“Processo soma em espera”); System.out.println(”--------------------------------------\n");
}
}
import <a href="http://java.io">java.io</a>.*;
//Classe principal, onde será feita a chamada aos processos
public class SimplesThread2 {
//Método Main
public static void main(String[] args) {
//Instanciando objetos
Processo1 e = new Processo1();
//Instanciando Thread com objetos das classes para poderem serem executados
Thread t = new Thread(e);
t.start();
}
}