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

Как сделать параллельность в потоках без процессов в Python

В Python для параллельности в потоках без процессов используй модуль threading. Потоки легковесны и работают в одном процессе, но из-за GIL (Global Interpreter Lock) они не выполняют CPU-bound задачи параллельно, а только I/O-bound.

Пример:

python
import threading

def task(name):
    print(f"Thread {name} started")
    # Имитация I/O операции
    import time
    time.sleep(2)
    print(f"Thread {name} finished")

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

for t in threads:
    t.join()  # Ожидание завершения всех потоков

Для CPU-bound задач лучше использовать multiprocessing, но если нужны именно потоки, можно обойти GIL с помощью C-расширений или асинхронного подхода (asyncio).

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

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

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

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