Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Kupac
- ----------------
- public class Kupac extends Thread{
- private String ime;
- private Magacin m;
- private int vreme;
- private boolean radi;
- public Kupac(String ime, Magacin m, int vreme){
- this.ime=ime;
- this.m=m;
- this.vreme=vreme;
- this.radi=true;
- }
- public void run(){
- while (radi){
- System.out.println(ime + " inicira kupovinu...");
- if(m.kupi(6))
- System.out.println(ime + " uspesno pazario");
- else
- System.out.println(ime + " nije nista pazario");
- try {
- Thread.sleep(vreme*1000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- public void ugasiNit(){
- this.radi=false;
- }
- }
- ---------------------------------
- Magacin
- ---------------------------------
- public Magacin(String nazivArtikla, int kolicina) {
- this.nazivArtikla = nazivArtikla;
- this.kolicina = kolicina; //u magacinu
- }
- public synchronized boolean kupi(int kol){
- while (kolicina<kol){
- System.out.println("Trenutno nema na stanju, sacekajte...");
- try {
- wait();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- kolicina-=kol;
- System.out.println("Trenutna kolicina: "+ kolicina);
- return true;
- }
- public synchronized void updareKolicina(){
- System.out.println("Azuriramo stanje...");
- kolicina+=5;
- notifyAll();
- }
- public void run(){
- for (int i=0;i<5;i++){
- updareKolicina();
- try {
- Thread.sleep(4000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- }
- -----------------------------------------------
- Program
- -----------------------------------------------
- package glavni;
- import paket1.Kupac;
- import paket1.Magacin;
- /**
- * Created by urosrt4515 on 11/13/2018.
- */
- public class Program {
- public static void main(String[] args) {
- Magacin m=new Magacin("Jabuka", 10);
- Kupac k1=new Kupac("Pera", m, 3);
- Kupac k2=new Kupac("Mile", m, 5);
- m.start();
- k1.start();
- k2.start();
- try {
- Thread.sleep(25000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- k1.ugasiNit();
- k2.ugasiNit();
- }
- }
- ------------------------------
- samostalni
- ------------------------------
- package samostalni_klase;
- /**
- * Created by urosrt4515 on 11/13/2018.
- */
- public class Hotel extends Thread {
- private Musterija[] niz= new Musterija[5];
- private boolean radi;
- public synchronized void smestanjeMusterija(Musterija m) {
- for (int i = 0; i < niz.length; i++) {
- if (niz[i] == null) {
- niz[i] = m;
- System.out.println(m.toString() + "smesten je u niz na indeksu " + i + "." +
- " Kapacitet: " + i + "/" + niz.length );
- }
- else System.out.println("Kapacite hotela je pun");
- }
- }
- public synchronized void odjavljivanjeMusterija(Musterija m) {
- while (radi) {
- for (int i = 0; i < niz.length; i++) {
- if (niz[i] == m && m.getVremeBoravka() == 0){
- niz[i] = null;
- System.out.println(m.toString() + " je napustio hotel. Stanje je: " +
- i + "/" + niz.length);
- }
- else {
- m.smanjiVremeBoravka();
- System.out.println("Prosao je dan za musteriju - " + m.toString());
- }
- }
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- public void ugasiNit(){
- this.radi=false;
- }
- }
- package samostalni_klase;
- /**
- * Created by urosrt4515 on 11/13/2018.
- */
- public class Musterija {
- private int vremeBoravka;
- private static int jedisntveniID=0;
- public Musterija(int vremeBoravka) {
- this.vremeBoravka = vremeBoravka;
- jedisntveniID++;
- }
- public int getVremeBoravka() {
- return vremeBoravka;
- }
- public void smanjiVremeBoravka(){
- this.vremeBoravka-=1;
- }
- @Override
- public String toString() {
- return "[Musterija " + jedisntveniID +"b: "+vremeBoravka+"]";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement