https://github.com/zlatamigas/epam-task4
Epam. Task 4. Multithreading.
https://github.com/zlatamigas/epam-task4
callable executor-service java multithreading synchronization
Last synced: 20 days ago
JSON representation
Epam. Task 4. Multithreading.
- Host: GitHub
- URL: https://github.com/zlatamigas/epam-task4
- Owner: zlatamigas
- Created: 2022-03-28T20:02:52.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-03-29T07:58:49.000Z (over 3 years ago)
- Last Synced: 2025-03-29T13:51:41.372Z (7 months ago)
- Topics: callable, executor-service, java, multithreading, synchronization
- Language: Java
- Homepage:
- Size: 16.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Task 4. Multithreading.
Разработать многопоточное приложение, использующее разделяемые ресурсы.
В приложении должна быть реализована функциональность, определенная индивидуальным заданием.
## `Требования`
* Любая сущность, желающая получить доступ к разделяемому ресурсу, должна быть потоком.
* Программа может использовать возможности синхронизации, поставляемые библиотеками java.util.concurrent, java.util.concurrent.atomic и java.util.concurrent.locks.
* Не использовать интерфейс BlockingQueue и другие ограниченно потокобезопасные коллекции.
* Классы и другие сущности приложения должны быть грамотно структурированы по пакетам и иметь отражающую их функциональность название.
* Использовать шаблон State для описания состояний объекта, если только этих состояний больше двух.
* Для создания потоков разрешается использовать по возможности Callable.
* Запускать потоки с помощью ExecutorService.
* Вместо Thread.sleep использовать только возможности перечисления TimeUnit.
* Данные инициализации объектов считывать из файла. Данные в файле корректны.
* В приложении должен присутствовать потокобезопасный Singleton. При его создании запрещено использовать enum.
* Для записи логов использовать Log4J2.
* Для вывода работы потоков использовать метод main.
## `Индивидуальное задание`
### Вариант 3. Логистическая база.
Автофургоны заезжают на территорию базу для разгрузки или загрузки товаров, которые производятся через терминалы.
Если территория заполнена, то фургоны выстраиваются в очередь вне базы Автофургон может только разгружаться или загружаться.
Фургоны со скоропортящимся товаром обслуживаются вне очереди.
Каждый фургон обязательно должен быть обслужен.