Há algum tempo, tive uma conversa com um acadêmico cujo expertise era em tomada de decisões políticas e negociação. Descrevi meu interesse em analytics (uso da matemática para tomada de decisões em negócios, em tradução livre), em tomada de decisões automatizadas e também em sistemas de informação de forma geral. “Imagino que as empresas com as quais você trabalha têm em mente algumas decisões específicas a tomar quando elas colocam todas essas informações para funcionar, não?”, disse ele. “Não, na realidade, não têm”, respondi. “Perdemos a conexão entre o fornecimento da informação e a demanda por ela para tomada de decisões”. Excetuando o fato de que as empresas freqüentemente justificam projetos de TI alegando que estes oferecem melhor possibilidades de tomada de decisões, há raramente uma ligação direta entre as informações produzidas por um sistema específico e as decisões que são supostamente tomadas baseadas nelas. Quando meu velho amigo da Accenture Janne Harris e ...
Material muito prático para aprender a fazer Threads. Parabéns, Monteiro!
ResponderExcluirCódigo para simular uma conta conjunta compartilhada entre quatro pessoas:
ResponderExcluirpackage 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");
}
}
}
}
Muito boa aula, mais um aprendizado e como sempre a aula é nota 10!!!
ResponderExcluir