Курс Python → Синхронизация потоков с time.sleep()
Модуль threading в Python предоставляет возможность создания и управления потоками выполнения. Он позволяет запускать несколько частей программы параллельно, что увеличивает производительность и улучшает отзывчивость приложения. Однако, при работе с потоками возникает необходимость в синхронизации доступа к общим ресурсам, чтобы избежать состояний гонки и других проблем.
Один из способов синхронизации потоков — использование функции time.sleep(). Эта функция приостанавливает выполнение текущего потока на определенное количество секунд, что может быть полезно для организации задержек в программе или синхронизации действий между потоками. Например, в Python Logging Cookbook можно увидеть пример использования time.sleep() для организации вывода логов в потоко-безопасном режиме.
import threading
import time
def print_thread_name(threadName):
print(threadName)
# Создание двух потоков
thread1 = threading.Thread(target=print_thread_name, args=('Thread 1',))
thread2 = threading.Thread(target=print_thread_name, args=('Thread 2',))
# Запуск потоков
thread1.start()
thread2.start()
try:
# Цикл для каждого входа из главного потока
while True:
time.sleep(1)
except KeyboardInterrupt:
# Обработка прерывания пользователем
print('Выход из программы')
В данном примере создаются два потока, каждый из которых вызывает функцию print_thread_name() с различным аргументом. После запуска потоков начинается бесконечный цикл, в котором каждую секунду выполняется функция time.sleep(1). Это позволяет избежать излишней загрузки процессора и организовать плавное выполнение программы.
При нажатии комбинации клавиш ^Ctrl+C происходит исключение KeyboardInterrupt, которое позволяет корректно завершить выполнение программы и вывести сообщение о выходе. Таким образом, использование time.sleep() вместе с модулем threading позволяет эффективно управлять потоками и обеспечивать безопасное выполнение программы.
Другие уроки курса "Python"
- Проверка типа данных
- Работа с файловой системой в Python
- Конкатенация строк с join() в Python
- Оценка выражений генератора в Python
- Функция pow() — возвести число в степень
- Перегрузка операторов в Python
- Счетчик в Python: most_common()
- Функции в Python
- Solidity для DeFi Ethereum
- Построение графиков в Matplotlib
- Структурирование данных с Pydantic
- Оформление кода на Python
- Очистка данных в Python
- Упрощение условных выражений с тернарным оператором
- Сортировка с параметром key
- Генератор данных в Keras
- Пропуск начальных строк с помощью dropwhile()
- Лямбда-функции в Python
- Работа с deque в Python
- Python reversed() функция
- Метод Self в Python
- Создание вложенных циклов for
- Замена символов в Python
- Функция __init__ в Python
- Хэш-функции в Python
- Тестирование с responses
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Методы обработки строк в Python
- Удаление файлов в Python
- Python Translator: создание локальных переводчиков
- Шаблоны и наследование в Flask
- Исправление ошибки NameError
- История Python
- Проверка переменных окружения в Python
- Множества и frozenset
- Выражения-генераторы в Python
- Объединение коллекций в Python
- Моржовый оператор в Python 3.8
- Многострочные комментарии в Python
- Избегайте ошибку FileNotFoundError
- Python 3.12: Псевдонимы типов
- Форматирование заголовков в Python
- Тестирование модели в PyTorch
- Курс Data Scientist в медицине















