Implementar sistema de semaforo utilizando THREADS

0 respostas
F

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

}

Criado 16 de fevereiro de 2007
Respostas 0
Participantes 1