Advertisement
Guest User

Untitled

a guest
Jan 18th, 2020
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1.  
  2. import java.util.logging.Level;
  3. import java.util.logging.Logger;
  4. import java.util.Scanner;
  5. import java.util.concurrent.Semaphore;
  6. class Car extends Thread {
  7.     Parking parking;
  8.     int name;
  9.     Car(Parking parking, int name) {
  10.         this.parking = parking;
  11.         this.name = name;}
  12.     void enterParking() {
  13.         parking.enter(this.name);}
  14.     void exitParking() {
  15.         parking.exit(this.name);}
  16.     @Override
  17.     public void run() {
  18.         for (int i = 0; i < 10; ++i) {
  19.         this.enterParking();
  20.         try {
  21.             Thread.sleep(1000 + (int)(Math.random() * 1000));
  22.         } catch (InterruptedException ex) {
  23.             Logger.getLogger(Car.class.getName()).log(Level.SEVERE, null, ex);}
  24.         this.exitParking();
  25.          try {
  26.             Thread.sleep(1000 + (int)(Math.random() * 1000));
  27.         } catch (InterruptedException ex) {
  28.             Logger.getLogger(Car.class.getName()).log(Level.SEVERE, null, ex);}} }}
  29. class Parking extends Thread {
  30.     Semaphore semaphore;
  31.     Parking(int place) {
  32.         this.semaphore = new Semaphore(place);
  33.     }
  34.     void enter(int name) {
  35.         try {
  36.             semaphore.acquire();
  37.             System.out.println("Car wjechal " + name);
  38.         } catch (InterruptedException e) {}}
  39.     void exit(int name) {
  40.         System.out.println("Car wyjechal " + name);
  41.         semaphore.release(); }
  42.     @Override
  43.     public void run() {
  44.         while (true) {
  45.             System.out.println("Liczba miejsc: " + semaphore.availablePermits());
  46.             try {
  47.                 Thread.sleep(500);
  48.             } catch (InterruptedException ex) {
  49.                 Logger.getLogger(Parking.class.getName()).log(Level.SEVERE, null, ex);}}}}
  50. public class JavaWspolbiezne {
  51.     public static void main(String[] args) throws InterruptedException {
  52.         Parking parking = new Parking(5);
  53.         parking.setDaemon(true);
  54.         parking.start();
  55.         Thread[] threads = new Thread[10];
  56.         int cars = 10;
  57.         for (int i = 0; i < cars; ++i) {
  58.             threads[i] = new Thread(new Car(parking, i));
  59.             threads[i].start();}}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement