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

Как реализовать многопоточность

В Python многопоточность реализуется через модуль threading. Однако из-за GIL (Global Interpreter Lock) потоки эффективны только для I/O-bound задач. Для CPU-bound задач лучше использовать multiprocessing.

Пример с threading:

python
import threading

def worker(num):
    print(f"Поток {num} запущен")

threads = []
for i in range(5):
t = threading.Thread(target=worker, args=(i,))
threads.append(t)
t.start()

for t in threads:
t.join()

text

Для пула потоков можно использовать `ThreadPoolExecutor`:
```python
from concurrent.futures import ThreadPoolExecutor

def task(n):
    return n * n

with ThreadPoolExecutor(max_workers=3) as executor:
    results = executor.map(task, [1, 2, 3])
    print(list(results))  # [1, 4, 9]

Важные моменты:

  • Потоки разделяют память, но требуют синхронизации (Lock, RLock)
  • GIL ограничивает параллельное выполнение Python-кода
  • Для CPU-bound задач используйте multiprocessing
  • Остерегайтесь race conditions и deadlocks
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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