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

Какие знаешь механизмы конкурентности в Python

В Python есть несколько механизмов для работы с конкурентностью:

  1. Потоки (threading)
    Подходят для I/O-bound задач (сетевые запросы, чтение файлов).
    Из-за GIL (Global Interpreter Lock) потоки выполняются не совсем параллельно.

    python
    import threading
    
    def task():
        print("Thread running")
    
    thread = threading.Thread(target=task)
    thread.start()
    thread.join()
  1. Процессы (multiprocessing)
    Для CPU-bound задач (тяжёлые вычисления).
    Каждый процесс имеет свой GIL, что позволяет использовать несколько ядер CPU.

    python
    from multiprocessing import Process
    
    def task():
        print("Process running")
    
    process = Process(target=task)
    process.start()
    process.join()
  2. Асинхронность (asyncio)
    Оптимально для I/O-bound задач с большим количеством соединений.
    Работает на корутинах (coroutines) и event loop.

    python
    import asyncio
    
    async def task():
        print("Coroutine running")
    
    asyncio.run(task())
  3. concurrent.futures
    Высокоуровневый интерфейс для потоков/процессов.

    python
    from concurrent.futures import ThreadPoolExecutor
    
    with ThreadPoolExecutor() as executor:
        executor.submit(lambda: print("Task in thread pool"))
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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