TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Trabalho Ti

Dissertações: Trabalho Ti. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  8/5/2014  •  396 Palavras (2 Páginas)  •  569 Visualizações

Página 1 de 2

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

}

...

Baixar como (para membros premium)  txt (2.6 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com