Можно ли на потоках распараллелить задачу

Python Junior Без компании
Можно ли на потоках распараллелить задачу
Ответы
Да, в Python можно распараллелить задачу с помощью модуля `threading`, но из-за GIL (Global Interpreter Lock) потоки эффективны только для I/O-bound задач (например, сетевые запросы, работа с файлами). Для CPU-bound задач лучше использовать `multiprocessing`. Пример с `threading` для I/O-bound задачи: ``` import threading def download(url): print(f"Downloading {url}...") # Имитация I/O операции time.sleep(2) print(f"Finished {url}") urls = ["url1", "url2", "url3"] threads = [] for url in urls: t = threading.Thread(target=download, args=(url,)) t.start() threads.append(t) for t in threads: t.join() ``` Для CPU-bound задач используй `multiprocessing`: ``` from multiprocessing import Pool def process_data(data): return data * data if __name__ == "__main__": with Pool(4) as p: results = p.map(process_data, range(10)) ```