Встречается на собеседованиях • сегодня
Есть ли 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`.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы