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

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

Проверяемое задание 3

Тема 4. Java Threads

Цель работы: сформировать навыки работы с основными принципами создания многопоточных приложений.

Задание. В процессе написания тестовых заданий ознакомиться с общими принципами создания многопоточных приложений.

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

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

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

1.         Создайте поток двумя способами:

-           расширив класс Thread;

-           переопределив его метод run(), реализовав интерфейс Runnable.

Если класс расширяет класс Thread, поток можно запустить, создав экземпляр класса и вызвав его метод start(). Продемонстрируйте пример расширения.

Если класс реализует интерфейс Runnable, поток можно запустить, передав экземпляр класса конструктору Thread-объекта и затем вызвав метод потока start(). Продемонстрируйте пример реализации.

2.         Создайте два класса нитей (наследуют от класса Thread), взаимодействующих с помощью промежуточного объекта типа Vector.

Первая нить последовательно заполняет вектор (изначально он заполнен нулями) произвольными различными величинами (например, случайными), отличными от нуля. Каждый раз, когда она помещает значение в вектор, она выводит на экран сообщение вида “Write: 100.5 to position 3”. По достижении конца вектора нить заканчивает свое выполнение.

Вторая нить последовательно считывает значения из вектора и выводит их на экран сообщениями вида “Read: 100.5 from position 3”. По достижении конца вектора нить заканчивает свое выполнение.

В методе main() следует создать 3 участвующих в процессе объекта и запустить нити на выполнение. Запустите программу несколько раз. Попробуйте варьировать приоритеты нитей.

3.         Создайте два новых модифицированных класса нитей (реализуют интерфейс Runnable), обеспечивающих последовательность операций чтения-записи (т. е. на экран сообщения выводятся в порядке write-read-write-read-…) независимо от приоритетов потоков. Для этого потребуется описать некий вспомогательный класс, объект которого будет использоваться при взаимодействии нитей.

4.         Добавьте в класс со статическими методами обработки векторов реализацию метода Vector synchronizedVector(Vector vector), возвращающего ссылку на оболочку указанного вектора, безопасную с точки зрения многопоточности. Для этого потребуется описать некий новый класс, реализующий интерфейс Vector, а также перегружающий методы класса Object.

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

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

Вам подходит эта работа?
Похожие работы
Java
Контрольная работа Контрольная
4 Июн в 13:15
77 +1
0 покупок
Java
Контрольная работа Контрольная
3 Июн в 00:52
156 +2
2 покупки
Java
Контрольная работа Контрольная
30 Мая в 13:29
70 +1
0 покупок
Java
Дипломная работа Дипломная
5 Мая в 17:44
106 +1
0 покупок
Другие работы автора
Основы программирования
Контрольная работа Контрольная
30 Апр в 15:49
129 +5
3 покупки
Основы программирования
Контрольная работа Контрольная
30 Апр в 15:22
68 +3
3 покупки
Основы программирования
Контрольная работа Контрольная
30 Апр в 15:13
80 +2
0 покупок
Основы программирования
Лабораторная работа Лабораторная
30 Апр в 14:53
79 +2
1 покупка
Основы программирования
Контрольная работа Контрольная
30 Апр в 14:45
138 +3
0 покупок
Основы программирования
Контрольная работа Контрольная
30 Апр в 14:41
74 +2
1 покупка
Основы программирования
Контрольная работа Контрольная
30 Апр в 14:26
150 +1
3 покупки
Основы программирования
Лабораторная работа Лабораторная
30 Апр в 14:22
142 +3
0 покупок
Основы программирования
Контрольная работа Контрольная
25 Мар в 18:11
179 +1
3 покупки
Основы программирования
Контрольная работа Контрольная
25 Мар в 18:04
190 +2
3 покупки
Основы программирования
Контрольная работа Контрольная
25 Июн 2024 в 21:49
452 +1
2 покупки
ТВиМС - Теория вероятностей и математическая статистика
Контрольная работа Контрольная
25 Июн 2024 в 21:45
292 +1
3 покупки
Основы программирования
Контрольная работа Контрольная
25 Июн 2024 в 21:33
384 +3
6 покупок
Основы программирования
Контрольная работа Контрольная
25 Июн 2024 в 21:30
539 +2
5 покупок
Основы программирования
Контрольная работа Контрольная
25 Июн 2024 в 21:28
310 +2
12 покупок
Основы программирования
Контрольная работа Контрольная
25 Июн 2024 в 21:27
208 +4
0 покупок
Основы программирования
Контрольная работа Контрольная
25 Июн 2024 в 21:21
242 +2
7 покупок
Основы программирования
Контрольная работа Контрольная
25 Июн 2024 в 21:16
226 +1
0 покупок
Темы журнала
Показать ещё
Прямой эфир