Запуск потоков
Характеристики потока
Назначение потоков
Эффективность программ
Процессы и потоки
Потоки Java, класс Thread
Потоки Java, класс Thread
Потоки Java, класс Thread
Потоки Java, класс Thread
Класс Thread, приоритет
Класс Thread
Класс Thread
Потоки Java, класс Thread
Потоки Java, класс Thread
Потоки Java, класс Thread
Потоки Java, класс Thread
Потоки Java
Потоки Java, класс OneThread
Потоки Java, класс TwoThread
Потоки Java, класс ThreadTwo
Класс Driver
Потоки Java
Потоки Java, класс Driver
Потоки Java, класс Driver
Потоки Java, состояние потоков
Потоки Java, класс Thread
Потоки Java
Потоки Java, класс Thread
Потоки Java, класс Thread
Потоки Java, класс Thread
Потоки Java, класс Thread
Потоки Java, класс Thread
Потоки Java, класс Thread
Потоки Java, класс Thread
968.00K
Category: programmingprogramming

14_Potoki_Java_1

1. Запуск потоков

1.
2.
3.
4.
Потоки Java
Класс Thread
Контроль состояния потоков
Приоритет потоков

2. Характеристики потока

Потоки – процессы, которые
выполняются в общем окружении.
Каждый поток имеет свое небольшое
окружение
счетчик команд;
слово состояния процессора;
содержание регистров общего
назначения процессора;
содержание локального стека.
2

3. Назначение потоков

Потоки используются для повышения
эффективности вычислений
Структурирования сложных
программ с параллельным набором
инструкций.
Программы с потоками могут без
изменений исполняться параллельно в
мультипроцессорной системе.
3

4. Эффективность программ

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

5. Процессы и потоки

5

6. Потоки Java, класс Thread

При создании программ с несколькими
потоками используют потомки
класса Thread.
новый поток создаются путем
расширения класса Thread;
все действия нового потока должны быть
запрограммированы в методе run ();
в конструкторе нового потока ему
присваивается новое имя
поток запускает вызовом метода start ().
6

7. Потоки Java, класс Thread

Характеристиками потока являются:
Его имя.
Приоритет – по умолчанию
задаётся системой
Имя его группы.
Для изменения имени потоку используется
метод setName():
final void setName(String threadName)
В процессе работы программы можно узнать
имя потока, вызывая метод getName().
final String getName()
7

8. Потоки Java, класс Thread

Для получения ссылки на главный поток
используется метод потока
currentThread()
static Thread currentThread()
Для приостановки выполнения
потока служит метод sleep()
static void sleep (long time)
вызов метода требует перехвата
исключения InterruptedException
Время задержки потока задается
в миллисекундах!
8

9. Потоки Java, класс Thread

Для контроля за состоянием потока
используется метод контроля за
завершением потока:
true isAlive(void)
Значение false – поток закончил работу.
Значение true – поток в работе.
Присоединение потока к главному потоку:
void join(void);
После вызова метод главный поток
прекращает работу до завершения потока.
Вызов метода требует перехвата
исключения:InterruptedException
9

10. Класс Thread, приоритет

В стандарте потокам по
умолчанию присваивается
приоритет равный 5.
Значение приоритета может
изменяться в пределах от 1 до
10.
1
0

11. Класс Thread

В классе Thread определено три
свойства, в которых хранится значение
приоритета:
MAX_PRIORITY – максимальный
приоритет.
NORM_PRIORITY – значение
приоритета по умолчанию.
MIN_PRIORITY – минимальное
значение приоритета.
11

12. Класс Thread

Установка приоритета потоку выполняется
методом класса Thread setPriority()
final void setPriority(int number)
Можно узнать значение приоритета
потока, вызвав метод getPriority()
final int getPriority()
12

13. Потоки Java, класс Thread

Контрольные
задания
13

14. Потоки Java, класс Thread

Задание №1. Главный поток программы
Создайте проект ThreadMain.
В проект разместите класс
CurrenThread
14

15. Потоки Java, класс Thread

Кот статического метода main класса
15

16. Потоки Java, класс Thread

16

17. Потоки Java

Задание №2. Проект ThreadTwo с главным
потоком main и двумя дочерними.
Первый поток
Создайте классы в
соответствии с UML
схемой проекта
Второй поток
17

18. Потоки Java, класс OneThread

Конструктор класса
Метод run
18

19. Потоки Java, класс TwoThread

19

20. Потоки Java, класс ThreadTwo

Конструктора класса
Метод run
20

21. Класс Driver

Статическая операция класса main,
запуск потоков
21

22. Потоки Java

Задание №3. Создайте проект ThreadTwoControl
на основе проекта задания №2.
Классы проекта TwoThread
и OneThread аналогичны
заданию №2
22

23. Потоки Java, класс Driver

Атрибуты класса - статические
Метод main класса
23

24. Потоки Java, класс Driver

Неправильный вывод сообщения.
Потоки ещё в работе !
24

25. Потоки Java, состояние потоков

Внесите изменения в
класс в соответствии
с его UML схемой
Метод stateThread
25

26. Потоки Java, класс Thread

Метод main
26

27. Потоки Java

Программа работает
правильно
27

28. Потоки Java, класс Thread

Задание №4. Создайте новый
проект ThreadPriority на основе
проекта задания №3.
Установите задержку в обоих потоках
равной 500 миллисекундам
В конструкторах потоков установите приоритеты:
Потоку номер 2 максимальный, а потоку 1 минимальный:
setPriority(Thread.MAX_PRIORITY);
setPriority(Thread.MIN_PRIORITY);
Назначение должно быть выполнено до вызова метода
запуска потоков start!
28

29. Потоки Java, класс Thread

Второй поток должен
завершится первым
29

30. Потоки Java, класс Thread

Задание №5
Даны алгоритмы вычисления двух сумм
30

31. Потоки Java, класс Thread

31

32. Потоки Java, класс Thread

Создать программу которая отвечает UML схеме состояний
Поток 1 – вычисление первой суммы
Поток 2 – вычисление второй суммы
Задержка в потоках:
1 – 0,5 секунд
2 – 1 секунда
Внесите изменения в
алгоритм вычисления
сумм что бы вывод
соответствовал тесту
32

33. Потоки Java, класс Thread

См. Далее
33

34. Потоки Java, класс Thread

34
English     Русский Rules