Threads JAVA - Synchronized

Programação Orientado à Objetos
Threads / Sinchronized


Material de apoio: 
http://javafree.uol.com.br/artigo/868871/Entendendo-Threads-e-Sincronizacao.html
http://equipe.nce.ufrj.br/gabriel/arqcomp2/ThreadsemJava.pdf
http://javafree.uol.com.br/artigo/6955/Cap-9-Threads-Segmentos.html

Comentários

  1. Material muito prático para aprender a fazer Threads. Parabéns, Monteiro!

    ResponderExcluir
  2. Código para simular uma conta conjunta compartilhada entre quatro pessoas:

    package newpackage;

    public class ContaConjunta {
    private int saldo = 200;

    public int getSaldo(){
    return saldo;
    }
    public synchronized void sacar(int valor, String cliente){
    if(saldo >= valor){
    int saldoOriginal=saldo;
    System.out.println(cliente+" vai sacar");
    try {
    System.out.println(cliente+" esperando");
    Thread.sleep(1000);
    } catch (InterruptedException ex){}
    saldo -= valor;
    String msg = cliente+" sacou "+valor+" [Saldo Original= "+saldoOriginal+", Saldo Final= " +saldo+"]";
    System.out.println(msg);
    }else{
    System.out.println("Saldo insuficiente para "+cliente);
    }

    }

    }

    package newpackage;
    public class Compras implements Runnable {
    ContaConjunta conta = new ContaConjunta();

    public static void main (String[] args){

    Compras irAsCompras = new Compras();
    new Thread(irAsCompras, "Mãe").start();
    new Thread(irAsCompras, "Filho").start();
    new Thread(irAsCompras, "Pai").start();
    new Thread(irAsCompras, "Filha").start();

    }
    @Override
    public void run() {
    String cliente = Thread.currentThread().getName();
    for(int i=0; i<10;i++){
    conta.sacar(10,cliente);
    if(conta.getSaldo()<0){
    System.out.println("Estorou");
    }
    }
    }

    }

    ResponderExcluir
  3. Muito boa aula, mais um aprendizado e como sempre a aula é nota 10!!!

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Questão Comentada - Prof Nelson Lage

Classes(abstratas e concretas), Objetos, Métodos, Construtores, Vetor de Objetos e trabalhar o conceito de interface.

10 habilidades digitais que todo professor deve ter