Trabalho Ti
Dissertações: Trabalho Ti. Pesquise 862.000+ trabalhos acadêmicosPor: andy5136 • 8/5/2014 • 396 Palavras (2 Páginas) • 622 Visualizações
CLASSE PROCESSADORTHREAD (COLOCAR TODOS DA PÁGINA NA MESMA CLASSE)
import java.util.concurrent.Semaphore;
public class ProcessadorThread extends Thread {
private int idThread;
private Semaphore semaforo;
public ProcessadorThread(int id, Semaphore semaphore) {
this.idThread = id;
this.semaforo = semaphore;
}
private void processar() {
try {
System.out.println("Thread #" + idThread + " processando");
Thread.sleep((long) (Math.random() * 10000));
} catch (Exception e) {
e.printStackTrace();
}
}
private void entrarRegiaoNaoCritica() {
System.out.println("Thread #" + idThread + " em região não crítica");
processar();
}
private void entrarRegiaoCritica() {
System.out.println("Thread #" + idThread
+ " entrando em região crítica");
processar();
System.out.println("Thread #" + idThread + " saindo da região crítica");
}
public void run() {
entrarRegiaoNaoCritica();
try {
semaforo.acquire();
entrarRegiaoCritica();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
semaforo.release();
}
}
}
CLASSE SEMAFORO (CRIAR OUTRA PAGINA)
package semaforo1;
import java.util.concurrent.Semaphore;
public class Semaforo {
public static void main(String[] args) {
int numeroDePermicoes = 2;
int numeroDeProcessos = 6;
Semaphore semaphore = new Semaphore(numeroDePermicoes);
ProcessadorThread[] processos = new ProcessadorThread[numeroDeProcessos];
for (int i = 0; i < numeroDeProcessos; i++) {
processos[i] = new ProcessadorThread(i, semaphore);
processos[i].start();
}
...