Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package golibroda;
- public class SprawdzeniePoczekalni {
- private boolean dostepne = false;
- public SprawdzeniePoczekalni(boolean dos)
- {
- this.dostepne = dos;
- }
- public synchronized void zajmij(String nazwa)
- {
- while (dostepne == false)
- {
- try {
- System.out.println(nazwa + " czeka na sprawdzenie");
- wait();
- } catch (InterruptedException e) { }
- }
- if(nazwa.equals("Golibroda"))
- System.out.println(nazwa + " sprawdza poczekalnie");
- else
- System.out.println(nazwa + " sprawdza czy Golibroda jest zajety");
- dostepne = false;
- }
- public synchronized void zwolnij(String nazwa)
- {
- System.out.println(nazwa + " skonczyl sprawdzac");
- dostepne = true;
- notifyAll();
- }
- public static void main(String[] args)
- {
- SprawdzeniePoczekalni g = new SprawdzeniePoczekalni(true);
- Golibroda golibroda = new Golibroda(g);
- Klient klient1 = new Klient(g);
- //Klient klient2 = new Klient(g);
- //Klient klient3 = new Klient(g);
- golibroda.start();
- klient1.start();
- //klient2.start();
- //klient3.start();
- }
- }
- package golibroda;
- public class Golibroda extends Thread{
- private SprawdzeniePoczekalni spr;
- private String nazwa = "Golibroda";
- public boolean zajety = false;
- public Golibroda(SprawdzeniePoczekalni b)
- {
- this.spr = b;
- }
- public void run()
- {
- if(!zajety)
- {
- for (int i = 0; i < 1; i++)
- {
- spr.zajmij(nazwa);
- try {
- Thread.sleep((int)(Math.random() * 100));
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- spr.zwolnij(nazwa);
- }
- }
- else
- {
- try {
- Thread.sleep((int)(Math.random() * 100));
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- }
- package golibroda;
- public class Klient extends Thread{
- private SprawdzeniePoczekalni bilet;
- private String nazwa = "Klient";
- public Klient(SprawdzeniePoczekalni b)
- {
- this.bilet = b;
- }
- public void run()
- {
- for (int i = 0; i < 1; i++)
- {
- bilet.zajmij(nazwa);
- try {
- Thread.sleep((int)(Math.random() * 100));
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- bilet.zwolnij(nazwa);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement