Ця програма симулює процес паркування автомобілів на обмежену кількість паркувальних місць.
-
Головний клас
Main
:- Створює об'єкт паркувального майданчика (
ParkingLot
) для управління паркувальними місцями. - Створює потоки для кожного автомобіля (
Car
) та запускає їх. - Чекає, поки всі потоки завершаться.
- Створює об'єкт паркувального майданчика (
-
Клас
Car
:- Симулює кожен автомобіль як окремий потік.
- Спробує зайняти місце на паркуванні через метод
park()
.
-
Клас
ParkingLot
:- Семафор: Обмежує кількість автомобілів на парковці.
- Динамічне визначення кількості місць: 5 місць вдень, 8 — вночі.
- Метод
park()
: Автомобіль займає місце, паркується протягом 3 секунд, після чого звільняє місце.
- Семафори (
Semaphore
) — обмежують кількість автомобілів на парковці. - Потоки (
Thread
) з інтерфейсомRunnable
— кожен автомобіль працює паралельно. - Динамічне регулювання місць — кількість місць змінюється залежно від часу доби (день/ніч).
- Вдень: 5 місць доступно для паркування.
- Вночі: 8 місць доступно.
- Кожен автомобіль намагається зайняти місце, паркується протягом 3 секунд, а потім звільняє місце.
- Семафор забезпечує, щоб одночасно не паркувалося більше дозволеної кількості автомобілів.