Mutex huwa lock li jiggarantixxi mutual exclusion — thread wieħed biss jista' jżommu u jidħol fil-critical section protetta f'daqqa. Semaphore jiġġeneralizza dan biex jippermetti sa N holders konkorrenti.
Mutex huwa lock li jiggarantixxi mutual exclusion — thread wieħed biss jista' jżommu u jidħol fil-critical section protetta f'daqqa. Semaphore jiġġeneralizza dan biex jippermetti sa N holders konkorrenti.
acquire() inaqqas (jimblokka fuq 0), release() iżid. Mutex huwa essenzjalment semaphore b'N=1 imma bis-semantika tal-pussess.lock = threading.Lock()
def transfer(a, b, amt):
with lock: # critical section — one thread at a time
a.balance -= amt
b.balance += amt
# Semaphore: cap concurrent DB connections at 10
sem = threading.Semaphore(10)
def query():
with sem: # up to 10 threads run this concurrently
db.execute(...)
with/RAII/defer biex ir-rilaxx ikun awtomatiku anke fuq exceptions.Dawn huma l-għodod ta' kuljum biex tipproteġi shared state. Il-mutexes jissirjalizzaw l-aċċess biex jipprevjenu r-races; is-semaphores jrażżnu resource pool (connections, permits, rate limits). Li tagħżel il-primittiva t-tajba u żżomm il-critical sections qosra huwa d-differenza bejn korrett-u-mgħaġġel u korrett-imma-bilmod.
Librerija ta' mistoqsijiet ta' intervisti tal-IT b'tweġibiet dettaljati — minn Junior sa Senior.
Iddona