Junior — Middle
Маънои mutex дар кор бо сӯрохиҳо дар Python чист?
sobes.tech AI
Ҷавоб аз AI
Мютекс (mutex) дар Python истифода мешавад барои ҳамоҳангсозии сӯрохҳо ва пешгирии дастрасии ҳамзамон ба захираҳои умумӣ. Он кафолат медиҳад, ки дар ҳар лаҳза танҳо як сӯрох метавонад қисмати критикии коди, ки бо ин мютекс муҳофизат шудааст, иҷро кунад.
Ин муҳим аст, барои пешгирӣ кардани ҳолатҳои рақобат, вақте ки чанд сӯрох ҳамзамон маълумоти якхела тағир медиҳанд, ки метавонад ба натиҷаҳои номуайян оварда расонад.
Масали истифодаи мютекс бо модул threading:
import threading
lock = threading.Lock()
shared_resource = 0
def increment():
global shared_resource
with lock: # Гирифтани мютекс
temp = shared_resource
temp += 1
shared_resource = temp
threads = [threading.Thread(target=increment) for _ in range(1000)]
for t in threads:
t.start()
for t in threads:
t.join()
print(shared_resource) # интизор меравад 1000
Бе мютекс, натиҷа метавонад камтар аз 1000 бошад, бо сабаби дастрасии ҳамзамонӣ.