Похожие презентации:
14_Potoki_Java_1
1. Запуск потоков
1.2.
3.
4.
Потоки Java
Класс Thread
Контроль состояния потоков
Приоритет потоков
2. Характеристики потока
Потоки – процессы, которыевыполняются в общем окружении.
Каждый поток имеет свое небольшое
окружение
счетчик команд;
слово состояния процессора;
содержание регистров общего
назначения процессора;
содержание локального стека.
2
3. Назначение потоков
Потоки используются для повышенияэффективности вычислений
Структурирования сложных
программ с параллельным набором
инструкций.
Программы с потоками могут без
изменений исполняться параллельно в
мультипроцессорной системе.
3
4. Эффективность программ
Вычисления, проводимые с помощьюпотоков, заканчиваются быстрее, чем с
помощью параллельных процессов.
Обмен данными между потоками
происходит проще, чем между процессами,
так как потоки используют общий участок
оперативной памяти.
Структурирование программы на базе
потоков аналогично использованию
функций и объектов.
4
5. Процессы и потоки
56. Потоки 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
1617. Потоки Java
Задание №2. Проект ThreadTwo с главнымпотоком main и двумя дочерними.
Первый поток
Создайте классы в
соответствии с UML
схемой проекта
Второй поток
17
18. Потоки Java, класс OneThread
Конструктор классаМетод run
18
19. Потоки Java, класс TwoThread
1920. Потоки 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
Метод main26
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
3132. Потоки Java, класс Thread
Создать программу которая отвечает UML схеме состоянийПоток 1 – вычисление первой суммы
Поток 2 – вычисление второй суммы
Задержка в потоках:
1 – 0,5 секунд
2 – 1 секунда
Внесите изменения в
алгоритм вычисления
сумм что бы вывод
соответствовал тесту
32
33. Потоки Java, класс Thread
См. Далее33
Программирование