001 //package edu.unima.ky.parallel; 002 003 /** 004 * Finanz version B. 005 * Multi threaded application generates transactions using 006 * objects from KontoB and displays results. 007 * Uses synchronized Konto which cannot become negative. 008 * @author Heinz Kredel. 009 */ 010 public class FinanzB { 011 012 public static void main(String[] args) { 013 014 for (int i=0; i < 10; i++) { 015 KontoB a = new KontoB(-10.0); 016 KontoB b = new KontoB(300.0); 017 018 Thread t1 = new UeberweisungB(a,b,10.0); // a is the accont to get amount from. 019 Thread t2 = new UeberweisungB(a,b,10.0); // b is account to add amount to. 020 Thread t3 = new UeberweisungB(a,b,10.0); // 10.0 is the amount to transfer. 021 Thread t4 = new UeberweisungB(b,a,50.0); 022 023 t1.start(); t2.start(); t3.start(); t4.start(); 024 025 System.out.println("Stand a = " + a.zeigeGeld() + 026 " Stand b = " + b.zeigeGeld() ); 027 028 try { 029 t1.join(); t2.join(); t3.join(); t4.join(); 030 } catch(InterruptedException e ) { } 031 032 System.out.println("Endstand a = " + a.zeigeGeld() + 033 " Endstand b = " + b.zeigeGeld() ); 034 } 035 } 036 037 }