Практикум по программированию на Java 2[РОСДИСТАНТ] Практическое задание 4

Раздел
Программирование
Предмет
Просмотров
211
Покупок
16
Антиплагиат
Не указан
Размещена
18 Июн 2023 в 22:16
ВУЗ
РОСДИСТАНТ
Курс
3 курс
Стоимость
300 ₽
Демо-файлы   
1
docx
Практическое задание 4 Практическое задание 4
15.6 Кбайт 15.6 Кбайт
Файлы работы   
1
Каждая работа проверяется на плагиат, на момент публикации уникальность составляет не менее 40% по системе проверки eTXT.
docx
Выполнение практического задания 4
189 Кбайт 300 ₽
Описание

Тема 5. Java Threads. Синхронизация потоков (часть 2)

Цель работы: сформировать навыки работы с технологиями Java Threads.

Задание. Разработать многопоточное приложение.

Рекомендации по выполнению задания

·               Работы обязательно сопровождаются отчетом, включающим код программы с комментариями и экранные формы результатов выполнения программного кода.

·               Студент может выполнить не все задания, а только часть в каждой работе (если их несколько). Следует отметить, что в этом случае итоговая оценка будет рассчитываться пропорционально выполненным заданиям.

1.         Объявите и инициализируйте глобальные данные/переменные, которые требуют синхронизации (например, «count»). Объявите и инициализируйте связанный мьютекс.

Создайте потоки A и B для работы.

Поток А

-           Работает до момента, когда должно произойти определенное условие (например, «счетчик» должен достичь указанного значения).

-           Блокирует связанный мьютекс и проверяет значение глобальной переменной.

-           Вызовает pthread_cond_wait(), чтобы выполнить блокирующее ожидание сигнала от Thread-B. Обратите внимание, что вызов pthread_cond_wait() автоматически и атомарно разблокирует связанную переменную мьютекса, чтобы она могла использоваться Thread-B.

-           При получении сигнала поток А просыпается, мьютекс автоматически блокируется атомарно.

Поток B

-           Меняет значение глобальной переменной, которую ожидает Thread-A.

-           Проверяет значение глобальной переменной ожидания Thread-A. Если оно удовлетворяет желаемому условию, сигнализирует Thread-A.

-           Разблокирует мьютекс.

2.         Разработайте многопоточное приложение (использующее общую переменную):

-           в потоке объявлена приватная переменная, например, i=0. При выполнении потока i инкриминируется, к примеру, 100 раз. При каждом инкременте на консоль выводится значение i;

-           основная программа создает два потока. Необходимо проанализировать изменение i.

Выясните, как изменится поведение программы, если i объявить как локальную переменную (переменная метода run()).

3.         Разработайте многопоточное приложение:

-           один поток считывает текст собственной программы;

-           второй поток получает считанную строку, анализирует вхождение образца и по условию выводит строку на экран.

4.         Разработайте многопоточное приложение, реализующее кольцевой буфер в задаче «производитель – потребитель». Программа должна порождать процессы «производители» количеством K>1 и процессы «потребители» – M>1. Размер буфера N элементов. Частота работы производителя меньше в среднем в 10 раз частоты работы потребителя. Частоты задаются случайно. Производитель пишет в буфер в среднем 10 значений.

5.         Предоставьте отчет, который содержит текст программного кода выполненных заданий и скрин результатов работы. Приложите к отчету скомпилированные при выполнении указанных заданий программы.

При оформлении кода использование комментариев обязательно.

Вам подходит эта работа?
Похожие работы
Java
Задача Задача
2 Окт в 16:04
29
0 покупок
Java
Задача Задача
13 Июл в 14:32
69
0 покупок
Java
Задача Задача
13 Июл в 14:27
64 +2
0 покупок
Другие работы автора
Основы программирования
Контрольная работа Контрольная
25 Июн в 21:49
110
0 покупок
ТВиМС - Теория вероятностей и математическая статистика
Контрольная работа Контрольная
25 Июн в 21:45
96
0 покупок
Основы программирования
Контрольная работа Контрольная
25 Июн в 21:33
102
3 покупки
Основы программирования
Контрольная работа Контрольная
25 Июн в 21:30
121
1 покупка
Основы программирования
Контрольная работа Контрольная
25 Июн в 21:28
95
1 покупка
Основы программирования
Контрольная работа Контрольная
25 Июн в 21:27
38
0 покупок
Основы программирования
Контрольная работа Контрольная
25 Июн в 21:21
72
4 покупки
Основы программирования
Контрольная работа Контрольная
25 Июн в 21:16
54
0 покупок
Основы программирования
Контрольная работа Контрольная
25 Июн в 21:04
84 +1
0 покупок
Основы программирования
Контрольная работа Контрольная
25 Июн в 20:41
105
4 покупки
Основы программирования
Контрольная работа Контрольная
25 Июн в 20:36
43
0 покупок
Основы программирования
Контрольная работа Контрольная
25 Июн в 20:28
52
1 покупка
Основы программирования
Контрольная работа Контрольная
25 Июн в 20:20
49
1 покупка
Основы программирования
Контрольная работа Контрольная
25 Июн в 20:15
85
0 покупок
Основы программирования
Контрольная работа Контрольная
25 Июн в 20:12
67
1 покупка
Основы программирования
Контрольная работа Контрольная
30 Июн 2023 в 16:43
126
2 покупки
Основы программирования
Контрольная работа Контрольная
30 Июн 2023 в 16:41
111
1 покупка
Основы программирования
Контрольная работа Контрольная
30 Июн 2023 в 16:39
103
3 покупки
Темы журнала
Показать ещё
Прямой эфир