Распространенное вычисление Java управления процессами, потоками (нотками)
а) Тема: Процессы, потоки (ночи)Задача: Составьте программу (процесс), которая параллельно запускает два фоновых потока (ночи).Использовать синхронизацию потоков на совместном ресурсе.Описание работы программы:
При запуске программы кнопкой "Пуск", одновременно параллельно запускаются два потока Tthread1 и TThread2, которые пытаются установить "бег" в свое положение (1-в позиции 10, 2-й в позиции 90)
В потоках можно менять приоритеты, и в зависимости от приоритета преимущество отдается либо одному, либо другому потоку.
После завершения программы потоки исчезают.
b) Тема: Управление процессами, потоками (нитками) в критической секции с помощью блокирующей переменной (самой простой семафоры)
В задании использовать программу задания 1
В программе сделать следующие изменения:
Введение глобальной переменной для семафора типа integer
Разместить кнопки ПУСК 1 и ПУСК 2 для запуска первого и второго потоков (ноток), перед этим устанавливается семафор в положение "заимствовано"
Разместить кнопки СТОП 1 и СТОП 2 для остановки первого и второго потоков (ноток), устанавливается семафор в положение "свободно"
Кнопка ПУСК 1 задает для первого потока наименьший приоритет
Кнопка ПУСК 2 задает для второго потока высший приоритет
Описание работы программы
Поток запускается последовательно.Если работает один из потоков, то второй невозможно запустить, потому что критическая секция занята и отображает сообщение "Закрыто потоком"
Кнопка Stop освобождает критическую секцию и уничтожает текущий поток.Кнопка ПУСК запускает поток и блокирует нажатие кнопки СТОП другого потока
Правильная работа программы заключается в следующем: Кнопка ПУСК 1 устанавливает бегунок в положении 10, там он и остается пока не нажимаем кнопку ПУСК 2, которая устанавливает его в состоянии 90
Обратите внимание!Семафор (блокирующая переменная) - глобальная переменная, доступная обоим потокам, поэтому они работают в одном адресном пространстве (данного процесса).Если семафор регулировал взаимодействие не потоков, а процессов, то он должен быть глобальным по отношению к ним и таким образом находиться в адресном пространстве операционной системы, которая и управляет процессами.
Отзыв заказчика о сотрудничестве с Олександром Денисовым
Распространенное вычисление Java управления процессами, потоками (нотками)Все отлично, работа выполнена качественно и своевременно.Добро работать!
![]()
Отзыв фрилансера о сотрудничестве с заказчиком
Распространенное вычисление Java управления процессами, потоками (нотками)Все отлично!
Яркая постановка требований, быстрые ответы.
Соглашение прошло замечательно!
-
51 3 0 Добрый день!
Задача – это все, что дано? Есть ли более точный описание того, что нужно сделать?
Посмотрите, возможно, это то, что вам нужно?
Анимация здесь работает неправильно, но я исправим, если что.
HTTPS://youtu.be/d1H6-RiWeug
УПД
И, наверное, ближе к истине.
https://youtu.be/mGQwYu4SoIA
Актуальные фриланс-проекты в категории Java
Создание приложенияЖелаю создать мобильное приложение для общения, в приложении должны быть аудио, видео звонок, создание групповых чатов, возможность синхронизировать с контактами телефона, настройками аккаунта: привязка по email, 2fa, номеру телефона, возможность настраивать уведомления… Java, Python ∙ 2 дня 8 часов назад ∙ 36 ставок |