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

Есть ли Mutex в Python

В Python нет встроенного Mutex как отдельного примитива, но его функциональность реализуется через threading.Lock (для потоков) или multiprocessing.Lock (для процессов).

Пример с threading.Lock:

python
import threading

lock = threading.Lock()
shared_data = 0

def increment():
global shared_data
with lock: # Блокировка
shared_data += 1

threads = [threading.Thread(target=increment) for _ in range(10)]
for t in threads:
t.start()
for t in threads:
t.join()
print(shared_data) # Гарантированно 10

text

**Нюансы:**  
- `Lock` не реентерабельный (для рекурсивных блокировок используйте `RLock`).  
- В асинхронном коде (`asyncio`) применяются свои механизмы (`asyncio.Lock`).  
- Для межпроцессного взаимодействия нужен `multiprocessing.Lock`.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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