Встречается на собеседованиях • сегодня

Какие знаешь способы решения проблемы многопоточности

В Python есть несколько подходов для работы с многопоточностью:

  1. Threading (потоки) - модуль threading. Подходит для I/O-bound задач из-за GIL. Пример:
python
import threading

def task():
    print("Thread running")

thread = threading.Thread(target=task)
thread.start()
thread.join()
  1. Multiprocessing - модуль multiprocessing. Обходит GIL, создавая отдельные процессы. Для CPU-bound задач:
python
from multiprocessing import Process

def task():
print("Process running")

p = Process(target=task)
p.start()
p.join()

text

3. **Asyncio** - для асинхронного I/O (Python 3.5+). Использует корутины:
```python
import asyncio

async def task():
    print("Async task")

await task()
  1. ThreadPool/ProcessPool - пулы потоков/процессов из concurrent.futures:
python
from concurrent.futures import ThreadPoolExecutor

with ThreadPoolExecutor() as executor:
    executor.submit(some_function)

Выбор зависит от задачи: I/O-bound → threading/asyncio, CPU-bound → multiprocessing. GIL ограничивает настоящую многопоточность в Python, поэтому для CPU-bound задач процессы предпочтительнее.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы