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

Atps - Programação Concorrente

Por:   •  8/5/2015  •  Trabalho acadêmico  •  3.897 Palavras (16 Páginas)  •  450 Visualizações

Página 1 de 16

package atpspc;

public class ProdutorConsumidor {

        

        private int fila=0;                                        //front=0;     | O Chefe de FILA

        private int next=0;                                        //A Equipa Tail

        private int tamanhoBuffer;                        //bufferLength | Tamanho do Buffer

        private String buffer[];                        //Buffer

        private int bufferVazio;                        //emptyNum | O número de buffer vazio

        

        public ProdutorConsumidor(int tamanhoBuffer){

                this.tamanhoBuffer = tamanhoBuffer;

                buffer = new String[tamanhoBuffer];

                bufferVazio = tamanhoBuffer;                

        }

        

        //A produção

        synchronized public void produzir(String data){

                System.out.println("A quantidade de Produção, buffer vazio" + bufferVazio);

                System.out.println("Os produtores estão Em Produção" + data);

                

                while (full()){

                        System.out.println("O Buffer esta cheio, esperar");

                        try{

                                this.wait();

                                }catch (InterruptedException e) {

                                        e.printStackTrace();

                                }

                }//Fim While

                this.notifyAll();

                buffer[next]=data;

                next = (next+1) %tamanhoBuffer;

                System.out.println("Produção realizada com Sucesso: "+ data);

                bufferVazio--;

                System.out.println("Após a produção, O número de buffer vazio" + bufferVazio);

        }//Fim da Produção 

        //O Consumo

        public synchronized void consum(){

                System.out.println("Quantidade de Buffer vazio: " + bufferVazio);

                

                while (empty()){

                        System.out.println("A espera para consumir");

                        try{

                                this.wait();

                        }catch (InterruptedException e){

                                e.printStackTrace();

                        }

                }//Fim While

                

                        System.out.println("O consumidor esta:"+ buffer[fila]);

                        this.notifyAll();

                        System.out.println("Sucesso ao consumir: "+ buffer[fila]);

                        fila = (fila+1) %bufferVazio;

                        bufferVazio++;

                        System.out.println("Após consumo, a quantidade de Buffer vazio é: " + bufferVazio);

                

                }// Fim do Consumo

        

                synchronized public void imprime(){

...

Baixar como (para membros premium)  txt (8.6 Kb)   pdf (73.9 Kb)   docx (16.7 Kb)  
Continuar por mais 15 páginas »
Disponível apenas no TrabalhosGratuitos.com