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

Какая может возникнуть проблема при одновременной работы нескольких потоков

При одновременной работе нескольких потоков в Python может возникнуть race condition (состояние гонки), когда несколько потоков пытаются изменить общие данные одновременно, что приводит к непредсказуемым результатам.

Например:

python
import threading

counter = 0

def increment():
    global counter
    for _ in range(100000):
        counter += 1

threads = []
for _ in range(5):
    t = threading.Thread(target=increment)
    threads.append(t)
    t.start()

for t in threads:
    t.join()

print(counter)  # Результат может быть меньше 500000

Проблема: операция counter += 1 не атомарна, и между чтением и записью может вмешаться другой поток.

Решение: использовать блокировки (Lock), синхронизацию или потокобезопасные структуры.

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

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

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

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