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
/
public class Processo1 implements Runnable {
/ 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 java.io.*;
//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();
}
}