Junior — Middle
72
Использовал ли ты в своих проектах инструменты для обеспечения потокобезопасности и синхронизации процессов?
Компании, где спрашивали
Notamedia
Ответ от нейросети
sobes.tech AI
Да, в проектах на Python я использовал различные инструменты для обеспечения потокобезопасности и синхронизации процессов. Например, модуль threading предоставляет объекты Lock, RLock, Semaphore и другие для управления доступом к общим ресурсам между потоками. Для процессов используется модуль multiprocessing, который имеет свои механизмы синхронизации, такие как Lock и Queue.
Пример использования Lock для потокобезопасного увеличения счетчика:
import threading
counter = 0
lock = threading.Lock()
def increment():
global counter
with lock:
temp = counter
temp += 1
counter = temp
threads = [threading.Thread(target=increment) for _ in range(1000)]
for t in threads:
t.start()
for t in threads:
t.join()
print(counter) # Ожидается 1000
Таким образом, с помощью таких инструментов можно избежать гонок данных и обеспечить корректную работу многопоточных и многопроцессных приложений.