Advertisement
ivana_andreevska

Sinhronizacija so pomos na biblioteka

Mar 14th, 2022 (edited)
960
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.26 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3.  
  4. public class SyncLibrary {
  5.     List<String> books = new ArrayList<>();
  6.     int kapacitet; //kolku knigi sobira vo bibliotekata
  7.  
  8.     public SyncLibrary(int kapacitet)
  9.     {
  10.         this.kapacitet=kapacitet;
  11.     }
  12.  
  13.     //slucaj koga clenot treba da vrati kniga vo bibliotekatta
  14.  
  15.     public synchronized void returnBook(String book) throws InterruptedException {
  16. //        if(books.size()==kapacitet)
  17. //        {
  18. //            //nemozeme da dodavame knigi
  19. //            System.out.println("Nemozeme da dodavame knigi");
  20. //        }
  21. //        else
  22. //            books.add(book);
  23.  
  24.  
  25.  
  26.         //ako kapacitetot ni e ist so brojot na knigi treba da cekame pred da vratime kniga
  27.        while (books.size()==kapacitet){
  28.            wait();
  29.        }
  30.        books.add(book);
  31.        notifyAll(); // da gi razbudime site threads koi spijat i da se aktiviraat tie koi zavisat od ovoj thread
  32.     }
  33.  
  34.  
  35.     //slucaj kgoa clenot treba da zeme kniga od bibliotekata
  36.  
  37.     public synchronized String borrowBook() throws InterruptedException {
  38.         String book="";
  39.         while (books.size()==0){
  40.             wait();
  41.         }
  42.         book= books.remove(0);
  43.         notifyAll();
  44.         return book;
  45.     }
  46.  
  47. }
  48.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement