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

Расскажи про опыт multithreading

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

Пример использования:

python
import threading

def worker(num):
    print(f"Worker {num} started")
    # I/O операция
    time.sleep(1)
    print(f"Worker {num} finished")

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

for t in threads:
    t.join()

Для CPU-bound задач лучше использовать multiprocessing. В threading есть примитивы синхронизации: Lock, RLock, Semaphore, Event. Также есть ThreadPoolExecutor из concurrent.futures для удобного управления пулом потоков.

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

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

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

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