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

Является ли список потокобезопасным

В Python список (list) не является потокобезопасным. Если несколько потоков одновременно изменяют список (например, добавляют или удаляют элементы), это может привести к повреждению данных или неожиданному поведению.

Пример проблемы:

python
import threading

shared_list = []

def add_items():
for i in range(1000):
shared_list.append(i)

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

for t in threads:
t.join()

print(len(shared_list)) # Может быть меньше 10000

text

### Решение:
Для потокобезопасной работы используйте:
1. **`threading.Lock`**:
   ```python
   lock = threading.Lock()
   with lock:
       shared_list.append(item)
  1. queue.Queue (если нужна FIFO-логика).

Для сложных сценариев рассмотрите multiprocessing.Manager().list() или специализированные структуры из collections.

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

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

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

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