Is glas é mutex a ráthaíonn eisiamh frithpháirteach — ní féidir ach le snáithe amháin é a shealbhú agus dul isteach sa rannán criticiúil cosanta ag an am. Ginearálaíonn semaphore é seo chun suas le N sealbhóirí comhthráthacha a cheadú.
Is glas é mutex a ráthaíonn eisiamh frithpháirteach — ní féidir ach le snáithe amháin é a shealbhú agus dul isteach sa rannán criticiúil cosanta ag an am. Ginearálaíonn semaphore é seo chun suas le N sealbhóirí comhthráthacha a cheadú.
acquire() (bacann ag 0), méadaíonn release(). Is éard atá i mutex go bunúsach ná semaphore le N=1 ach le séimeantaic úinéireachta.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 ionas go mbeidh an scaoileadh uathoibríoch fiú ar eisceachtaí.Is iad seo na huirlisí laethúla chun staid roinnte a chosaint. Sraithíonn mutexes rochtain chun races a chosc; tachtann semaphores linn acmhainní (naisc, ceadanna, teorainneacha ráta). Is í an difríocht idir ceart-agus-tapa agus ceart-ach-mall ná an primitive ceart a roghnú agus na ranna criticiúla a choinneáil gearr.
Leabharlann de cheisteanna agallaimh TF le freagraí mionsonraithe — ó Shóisearach go Sinsearach.
Síntiús