Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
А это две из восьми подборок моего канала канала о программировании на языке Python.
Приложение 2 к видеоуроку (Приложение 1)
Модуль threading, класс Thread
Сегодня подробнее остановимся на класса Thread модуля threading. Конечно, мы его уже использовали, но необходимы и подробности.
Прототип конструктора
Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)
- group — зарезервированный параметр;
- target — вызываемая функция;
- name — имя потока, если имя не указывать, присваиваются имена Thread-N, где N - не большое число.
- args — кортеж аргументов для вызываемой функции;
- kwargs — именованные параметры, упакованные в словарь;
- daemon — указывает, является ли поток демоном.
После получения объекта класса Thread можно использовать набор методов:
- start() — запускает поток.
- run() — вызывается после запуска потока и вызывает указанную при создании объекта функции, метод можно переопределить;
- join(timeout=None) — ожидает окончания работы потока (присоединяясь к нему), либо заканчивает работу, по истечения времени timeout (вещественное число), вызывает исключение при попытке присоединиться к текущему потоку;
- name — имя потока, может использоваться слева от знака равенства;
- ident — идентификатор потока;
- native_id — интегральный идентификатор потока;
- is_alive() — возвращает True, если поток работает;
- daemon — имеет значение True, если поток является демоном.
Ниже представлена программа несколько похожая на программу из Приложения 1.
Создаётся 10 потоков, у каждого из которых есть своё время жизни. Проверка того, что поток работает осуществляется в главном потоке с помощью метода is_alive().
Фрагмент работы программы
Поток 7 работает
Поток 8 работает
Поток 3 Thread-4 закончил работу
Поток 9 работает
Поток 5 работает
Поток 4 Thread-5 закончил работу
Поток 6 работает
Поток 7 работает
Поток 8 работает
Поток 9 работает
Поток 5 Thread-6 закончил работу
Поток 6 работает
Поток 7 работает
Поток 8 работает
Поток 9 работает
Поток 6 Thread-7 закончил работу
Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.