Встречается на собеседованиях • сегодня
Являются ли потоки потокобезопасными в Python
В Python потоки не являются полностью потокобезопасными из-за Global Interpreter Lock (GIL). GIL позволяет выполняться только одному потоку за раз, даже на многоядерных процессорах. Однако это не означает, что потоки полностью безопасны — состояние гонки (race condition) всё равно возможно при работе с общими данными.
Пример проблемы:
python
import threading
counter = 0
def increment():
global counter
for _ in range(100000):
counter += 1
threads = [threading.Thread(target=increment) for _ in range(5)]
for t in threads:
t.start()
for t in threads:
t.join()
print(counter) # Может быть меньше 500000Для потокобезопасности используйте:
- Блокировки (
threading.Lock) - Потокобезопасные структуры из
queue - Мультипроцессинг (
multiprocessing) для CPU-bound задач - Асинхронность (
asyncio) для I/O-bound задач

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы