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

Что такое потоки, процессы и асинхронность в Python, и чем они отличаются

Потоки (threads) — легковесные единицы выполнения внутри одного процесса, разделяющие память. В Python из-за GIL (Global Interpreter Lock) потоки эффективны только для I/O-bound задач.

python
import threading

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

thread = threading.Thread(target=task)
thread.start()

Процессы — независимые экземпляры программы с собственной памятью. Подходят для CPU-bound задач благодаря обходу GIL через multiprocessing.

python
from multiprocessing import Process

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

process = Process(target=task)
process.start()

Асинхронность — однопоточный неблокирующий подход через event loop (asyncio). Оптимален для I/O-bound задач с большим количеством ожиданий.

python
import asyncio

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

asyncio.run(task())

Ключевые отличия:

  • Потоки: общая память, GIL ограничивает CPU
  • Процессы: изолированная память, нет GIL
  • Асинхронность: однопоточный, неблокирующий I/O
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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