2.2 - Classe PrincipalBufferSincronizado.java

                
package br.aiec.multithread.teste;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import br.aiec.multithread.comum.Consumidor;
import br.aiec.multithread.comum.IBuffer;
import br.aiec.multithread.comum.Produtor;
import br.aiec.multithread.monitor.BufferSincronizado;

/**
 * 
 * Essa classe serve para testar o BufferSincronizado demonstrando que o buffer sempre 
 * será mantido integro não importando a forma como as threads o acessam.
 * 
 *  
 *
 */


public class PrincipalBufferSincronizado {
    public static void main(String[] args) {
        
        IBuffer buffer = new BufferSincronizado();
        
        Runnable produtor = new Produtor(buffer);
        Runnable consumidor = new Consumidor(buffer);
        
        ExecutorService pool = Executors.newCachedThreadPool();
        
        pool.execute(produtor);
        pool.execute(consumidor);
        
        pool.shutdown();
    }
}

                
            

Observe que, em relação ao exemplo do módulo anterior, agora os valores gravados e lidos sempre terão o mesmo valor, ou seja, para o exemplo presente no código, o resultado da somatória dos valores gravados e lidos sempre será 55, em quaisquer circunstâncias que se apresentem. Portanto, o exemplo apresentado resolve o problema da falta de integridade do buffer.

Copyright © 2016 AIEC.