Commit 57f8c3c5 by Patryk Czarnik

Wątki - początek

parent 3d899ed7
package watki.konto;
public class Konto {
private final int numer;
private final String wlasciciel;
private int saldo;
public Konto(int numer, String wlasciciel, int saldo) {
this.numer = numer;
this.wlasciciel = wlasciciel;
this.saldo = saldo;
}
public Konto(int numer, String wlasciciel) {
this(numer, wlasciciel, 0);
}
public int getNumer() {
return numer;
}
public String getWlasciciel() {
return wlasciciel;
}
public int getSaldo() {
return saldo;
}
@Override
public String toString() {
return "Konto nr " + numer + ", wł. " + wlasciciel + ", saldo " + saldo;
}
public void wplata(int kwota) {
if(kwota <= 0) {
throw new IllegalArgumentException("Niedodatnia kwota w metodzie wplata");
}
saldo += kwota;
}
// W tej wersji metoda w razie braku środków wyrzuca wyjątek
public void wyplata(int kwota) {
if(kwota <= 0) {
throw new IllegalArgumentException("Niedodatnia kwota w metodzie wyplata");
}
if(kwota > saldo) {
throw new IllegalStateException("Brak środków na koncie nr " + numer);
}
saldo -= kwota;
}
}
package watki.konto;
public class Przeploty {
public static void main(String[] args) {
Konto konto = new Konto(1, "Ala Kowalska", 1_000_000);
System.out.println(konto);
Thread wplacacz = new Thread(() -> {
for(int i = 0; i < 100_000; i++) {
konto.wplata(10);
}
});
Thread wyplacacz = new Thread(() -> {
for(int i = 0; i < 100_000; i++) {
konto.wyplata(10);
}
});
wplacacz.start();
wyplacacz.start();
// oczekiwanie na zakończenie wątku - operacja join
try {
wplacacz.join();
wyplacacz.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(konto);
}
}
package watki.podstawy;
public class AAA {
public static void main(String[] args) {
System.out.println("Przygotowuję wątki...");
Thread watekA = new Thread(() -> {
System.out.println("watekA startuje");
for(int i = 0; i < 100; i++) {
System.out.println("A " + i);
}
System.out.println("watekA koniec");
});
Thread watekB = new Thread(() -> {
System.out.println("watekB startuje");
for(int i = 0; i < 100; i++) {
System.out.println("B " + i);
}
System.out.println("watekB koniec");
});
Thread watekC = new Thread(() -> {
System.out.println("watekC startuje");
for(int i = 0; i < 100; i++) {
System.out.println("C " + i);
}
System.out.println("watekC koniec");
});
System.out.println("Uruchamiam wątki...");
watekA.start();
watekB.start();
watekC.start();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment