Что такое параллельность
Python
Middle
Без компании
Что такое параллельность
Ответы
Параллельность в Python — это выполнение нескольких задач одновременно, используя переключение контекста (не путать с истинным параллелизмом, где задачи выполняются физически одновременно).
В Python из-за GIL (Global Interpreter Lock) потоки (`threading`) не дают настоящего параллелизма для CPU-задач, но полезны для I/O-bound задач (например, сетевые запросы). Для CPU-bound задач лучше использовать `multiprocessing`, так как процессы не ограничены GIL.
**Пример с потоками (I/O-bound):**
```
import threading
def fetch_url(url):
print(f"Fetching {url}...")
# имитация запроса
time.sleep(2)
print(f"Done {url}")
urls = ["https://example.com", "https://google.com"]
threads = [threading.Thread(target=fetch_url, args=(url,)) for url in urls]
for t in threads:
t.start()
for t in threads:
t.join()
```
**Пример с процессами (CPU-bound):**
```
from multiprocessing import Pool
def compute(x):
return x * x
with Pool(4) as p:
print(p.map(compute, [1, 2, 3, 4]))
```
Для современных асинхронных задач можно использовать `asyncio`.