ivana_andreevska

Sinhronizacija so pomos na Mutex

Mar 14th, 2022 (edited)
475
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.20 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.concurrent.locks.Lock;
  4. import java.util.concurrent.locks.ReentrantLock;
  5.  
  6. public class MutexLibrary {
  7.     List<String> books = new ArrayList<>();
  8.     int kapacitet; //kolku knigi sobira vo bibliotekata
  9.     public static Lock lock = new ReentrantLock();
  10.  
  11.  
  12.     public MutexLibrary(int kapacitet) {
  13.         this.kapacitet = kapacitet;
  14.     }
  15.  
  16.     //slucaj koga clenot treba da vrati kniga vo bibliotekatta
  17.  
  18.     public void returnBook(String book) throws InterruptedException {
  19.         lock.lock();
  20.         while (true) {
  21.             if (books.size() < kapacitet) {
  22.                 books.add(book);
  23.                 lock.unlock();
  24.                 break;
  25.             }
  26.             lock.unlock();
  27.         }
  28.     }
  29.  
  30.  
  31.     //slucaj kgoa clenot treba da zeme kniga od bibliotekata
  32.  
  33.     public String borrowBook() throws InterruptedException {
  34.         String book = "";
  35.         while (true) {
  36.             lock.lock();
  37.             if (books.size() > 0) {
  38.                 book = books.remove(0);
  39.                 lock.unlock();
  40.                 break;
  41.             }
  42.             lock.unlock();
  43.         }
  44.         return book;
  45.     }
  46. }
  47.  
Add Comment
Please, Sign In to add comment