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

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

Потоки (threads) выполняются в одном процессе и разделяют память. Легковесны, но подвержены проблемам GIL в Python, что ограничивает параллелизм для CPU-bound задач.

Процессы (processes) - изолированные экземпляры программы с собственной памятью. Тяжелее потоков, но обходят GIL, так как каждый процесс имеет свой интерпретатор.

Асинхронность - однопоточная модель, где задачи кооперативно передают управление. Эффективна для I/O-bound операций, избегает накладных расходов на переключение контекста.

Пример с потоками:

python
from threading import Thread

def task():
    print("Выполняется в потоке")

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

Пример с процессами:

python
from multiprocessing import Process

def task():
    print("Выполняется в процессе")

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

Пример асинхронности:

python
import asyncio

async def task():
    print("Асинхронная задача")

asyncio.run(task())

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

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

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

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

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