Встречается на собеседованиях • сегодня
Позволяет ли GIL в Python использовать многопоточность для параллельных задач
GIL (Global Interpreter Lock) в CPython предотвращает параллельное выполнение байт-кода Python в нескольких потоках, но это не значит, что многопоточность бесполезна.
Когда потоки полезны:
- Для I/O-bound задач (сетевые запросы, чтение файлов), где потоки могут работать параллельно, так как GIL освобождается во время ожидания.
- Для задач, где важно сохранить порядок выполнения (например, GUI-приложения).
Когда потоки неэффективны:
- Для CPU-bound задач (математические вычисления), где GIL блокирует параллелизм. Здесь лучше использовать
multiprocessing.
Пример с потоками для I/O:
python
import threading
import requests
def fetch_url(url):
response = requests.get(url)
print(f"{url}: {len(response.content)} bytes")
urls = ["https://python.org", "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 задач используйте multiprocessing или асинхронность (asyncio).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы