Sou iniciante em java e estou fazendo uma tarefa que tem uma falha que não consigo identificar.
A tarefa é a seguinte: Em seu campus há um grande estacionamento que possui 30 vagas. Verifica-se que, enquanto o mesmo tiver vagas, não existirão prioridades para estacionar. Quando o estacionamento estiver cheio, uma fila será organizada, em que os professores possuem a mais alta prioridade, sendo seguidos pelos funcionários e, posteriormente, pelos alunos. Utilize Java com Threads para “simular” este problema. Utilize 10 professores, 15 funcionários, 30 alunos.
Eu fiz o código utilizando setPriority e não compila como esperado.
Segue abaixo o código que eu fiz.
import java.util.concurrent.*;
public class Estacionamento extends Thread
{
private static Semaphore estacionamento = new Semaphore (10, true);
Question
ena
Boa noite,
Sou iniciante em java e estou fazendo uma tarefa que tem uma falha que não consigo identificar.
A tarefa é a seguinte: Em seu campus há um grande estacionamento que possui 30 vagas. Verifica-se que, enquanto o mesmo tiver vagas, não existirão prioridades para estacionar. Quando o estacionamento estiver cheio, uma fila será organizada, em que os professores possuem a mais alta prioridade, sendo seguidos pelos funcionários e, posteriormente, pelos alunos. Utilize Java com Threads para “simular” este problema. Utilize 10 professores, 15 funcionários, 30 alunos.
Eu fiz o código utilizando setPriority e não compila como esperado.
Segue abaixo o código que eu fiz.
import java.util.concurrent.*;
public class Estacionamento extends Thread
{
private static Semaphore estacionamento = new Semaphore (10, true);
public Estacionamento (String nome )
{
super (nome);
}
public void run ()
{
try
{
estacionamento.acquire();
System.out.println(getName () + " ocupou vaga. ");
sleep( (long) (Math.random() * 10000 ));
System.out.println (getName () + " liberou vaga. " );
estacionamento.release ();
}
catch (InterruptedException ie)
{
ie.printStackTrace();
}
}
public static void main(String[] args)
{
for( int i = 0; i < 30; i++ )
{
Estacionamento estacionamento = new Estacionamento ("Carro # " + i);
estacionamento.start();
}
for( int p = 0; p < 10; p++ )
{
Estacionamento professor = new Estacionamento ( "Carro professor " + p );
professor.setPriority (Thread.MAX_PRIORITY);
professor.start();
}
for( int f = 0; f < 15; f++ )
{
Estacionamento funcionario = new Estacionamento ( "Carro funcionario " + f );
funcionario.setPriority (Thread.NORM_PRIORITY);
funcionario.start();
}
for( int a = 0; a < 30; a++ )
{
Estacionamento aluno = new Estacionamento ( "Carro aluno " + a );
aluno.setPriority (Thread.MIN_PRIORITY);
aluno.start();
}
}
}
Edited by enaLink to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.