Вход

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

Рекомендуемая категория для самостоятельной подготовки:
Контрольная работа*
Код 552277
Дата создания 2023
Мы сможем обработать ваш заказ (!) 20 мая в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
850руб.
КУПИТЬ

Описание

Проверяемое задание 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. Предоставьте отчет, в котором содержатся текст программного кода выполненных заданий и скрин результатов работы. Приложите к отчету скомпилированные программы по выполнению указанных заданий.

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

Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.0043
© Рефератбанк, 2002 - 2024