/
IT-Legion
/
examples
Обзор
Документация
Войти
/
IT-Legion
/
examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
io_bound_task.py
43 строки
2 KB
Перевозников Сергей Николаевич
create io_bound_task.py
07 янв 2026, 05:40
07 янв 2026, 05:40
cd33978
Код
Авторство
О чём код?
import concurrent.futures import requests import time import threading def io_bound_task(url): """I/O-bound задача для загрузки веб-ресурсов.""" start_time = time.time() thread_id = threading.get_ident() print(f'Загрузка "{url}" в потоке {thread_id}') time.sleep(3) # Имитация задержки для I/O операции response = requests.get(url) end_time = time.time() duration = end_time - start_time print(f'Загрузка завершена в потоке {thread_id}.') print(f"Время загрузки: {duration:.2f} сек.") if __name__ == "__main__": sites = [ 'https://example.net', 'https://example.com', 'https://example.org', ] with concurrent.futures.ThreadPoolExecutor() as executor: futures = [] start_switch_time = time.time() for site in sites: future = executor.submit(io_bound_task, site) futures.append(future) end_switch_time = time.time() switch_duration = end_switch_time - start_switch_time print(f"Переключение контекста после запуска потоков:\nВремя переключения: {switch_duration:.2f} сек.") for future in concurrent.futures.as_completed(futures): try: future.result() except Exception as e: print(f"Ошибка при выполнении задачи: {e}")