Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовик.doc
Скачиваний:
18
Добавлен:
08.02.2015
Размер:
326.14 Кб
Скачать

33

The Government of the Russian Federation

The Federal State Autonomous Institution of Higher Education "National Research University - Higher School of Economics"

Moscow institute of electronics and mathematics of National Research University «Higher School of Economics»

Faculty of Information Technology and Computer Engineering

Department of Computer Systems and Networks

Course title: Network computing

Term paper on the topic:

«Funds for the implementation of Java multithreaded architecture»

Tutor:

Baybikova T.N.

Student:

Group:

Vasin A.A.

SVBS-51

Moscow 2014

Оглавление

Постановка задачи

3

Введение

4

1. Теоретическая часть (обзор средств и методов реализации многопоточности в Java).

4

1.1 Процессы

4

1.2 Потоки

5

1.3 Запуск потоков

6

1.4 Завершение процесса и демоны

11

1.5 Завершение потоков

11

2. Методы использующиеся при работе с потоками.

15

2.1. Метод Thread.sleep()

15

2.2. Метод yield()

16

2.3. Метод join()

16

3. Приоритеты потоков

17

4. Проблемы при реализации параллельных программ

18

4.1 Взаимная блокировка (deadlock)

18

4.2. Голодание (starvation).

21

4.3. Активная блокировка (livelock) .

22

Заключение теоретической части.

23

Алгоритм работы программы.

24

Листинг программы (Приложение 1.)

25

Анализ выполнения программы (Приложение 2.)

28

Заключение

32

Список использованных источников и литературы

33

Постановка задачи

Тема курсовой работы: «Средства Java для реализации многопоточной архитектуры».

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

Функцию:

Количество потоков: любое;

Количество аргументов: два (x,y);

Создать интерфейс ввода и вывода результата;

Для реализации данной задачи используем следующий план действий:

  1. Проведем обзор средств и методов реализации многопоточности в языке Java/

  2. Построим алгоритм программы.

  3. Напишем по алгоритму сам текст программы.

  4. На примере использования нескольких потоков проанализируем результат.

  5. Запишем вывод о проделанной работе.

Введение

Наиболее очевидная область применения многопоточности – это программирование интерфейсов. Многопоточность незаменима тогда, когда необходимо, чтобы графический интерфейс продолжал отзываться на действия пользователя во время выполнения некоторой обработки информации. Например, поток, отвечающий за интерфейс, может ждать завершения другого потока, загружающего файл из интернета, и в это время выводить некоторую анимацию или обновлять прогресс-бар. Кроме того он может остановить поток загружающий файл, если была нажата кнопка «отмена».

Еще одна популярная и, пожалуй, одна из самых востребованных областей применения многопоточности – игры. В играх различные потоки могут отвечать за работу с сетью, анимацию, расчет физики и т.п. Для полного понимания приведем далее основные понятия и примеры.