- Головна
-
- Встановлення Python.
- Налаштування віртуального оточення
- Типи даних
- Математичні оператори
- Встроїні функції
- Бібліотеки Python
- Колекція List
- Кортежі Tuple
- Множини (Set)
- Рядки Str
- Список escape-символів
- Колекція Dictionary
- Множина frozenset
- Класи та об'єкти
- Винятки
- Пакетні менеджери
- Перевантаження операторів
- Робота з файлами та директоріями
- HttpClient
- HTTPServer
- Модуль socket
- Робота з пошту
- Багатопоточність
- Асинхронні методи
- Event Loop
- Обхід GIL
- Черга deque
- Масиви постійного розміру
-
- Webpack. Базове складання проекту
- GULP. SCSS. Налаштування оточення
- SCSS стилі особливості
- Шпаргалка SQL
- MySQL dump
- Git команди
- Розгорнути ssh git репозиторію на сервері
- Консольні команди
- Декілька версій PHP на сервері
- PHPStorm+xDebug+OpenServer
- PHPUnit + OpenServer
- Додати застосунок з Windows Store в автозавантаження
- Зовнішні посилання
Багатопоточність
Клас Thread
Клас Thread — основний клас для створення і керування потоками. У нього є 4 основних методи:
- start(): Запускає виконання потоку.
- join(): Поточний потік призупиняється і чекає завершення запущеного потоку.
- is_alive(): Повертає True, якщо потік виконується.
- run(): Метод, що містить код, який буде виконуватися в потоці. Перевизначається при наслідуванні від класу Thread
import threading
def worker(number, text):
print(f"Worker {number}: {text}")
# Створення нового потоку з аргументами
t = threading.Thread(target=worker, args=(1, "Hello")) # створили новий об'єкт потоку
t.start() # Запустили потік
t.join() # Очікуємо завершення потокуКлас Timer
Клас Timer в модулі threading призначений для запуску функції через заданий проміжок часу. Цей клас корисний для виконання відкладених завдань у багатопоточному середовищі.
Таймер створюється і ініціалізується за допомогою функції, яку необхідно викликати, і часу затримки в секундах.
- Метод start() запускає таймер, який відраховує заданий проміжок часу, а потім викликає вказану функцію.
- Метод cancel() дозволяє зупинити таймер, якщо він ще не спрацював. Це корисно для запобігання виконанню функції, якщо таймер більше не потрібен.
import threading
def greet(name):
print(f"Hello, {name}!")
# Створення таймера з аргументами
t = threading.Timer(3.0, greet, args=["Alice"])
t.start() # Запуск таймера
# Зупинка таймера до виконання
t.cancel()Клас ThreadLocal
Клас ThreadLocal призначений для створення потоків, у яких є свої власні локальні дані. Це корисно в багатопоточних додатках, коли кожен потік повинен мати свою версію даних, щоб уникнути конфліктів і проблем синхронізації.
import threading
# Створення об'єкта ThreadLocal
user_data = threading.local()
def process_request(user):
# Присвоєння значення локальної змінної потоку
user_data.user = user
handle_request()
def handle_request():
# Доступ до локальної змінної потоку
print(f'Handling request for user: {user_data.user}')
threads = []
users = ['Alice', 'Bob', 'Charlie']
for user in users:
t = threading.Thread(target=process_request, args=(user,))
threads.append(t)
t.start()
for t in threads:
t.join()
2015-2026 © SumyNikNet