Sobes.tech
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 бошад, бо сабаби дастрасии ҳамзамонӣ.