mutex — mutex-moduuli¶
mutex-moduuli tarjoaa keskinäisen poissulkemisen primitiivin, joka suojaa koodin kriittisiä osia tai jaettua dataa keskeytyspalvelurutiinin ja pääsäikeen samanaikaiselta käytöltä.
Lukon hankinta ja vapautus suoritetaan kontekstinhallinnan kautta (with-lause), joka estyy, kunnes mutex on saatavilla. Lisäksi tarjotaan estämätön Mutex.test()-metodi.
Esimerkki:
from mutex import Mutex
mtx = Mutex()
# Acquire for a critical section (blocks if already held).
with mtx:
# ... protected code, e.g. shared buffer access ...
pass
# Or try without blocking.
if mtx.test():
try:
# ... protected code ...
pass
finally:
mtx.release()
class Mutex – mutex-objekti¶
- class mutex.Mutex¶
Luo lukitsemattoman mutex-objektin.
- release() None¶
Vapauttaa mutexin. Nostaa
mutex.MutexException-poikkeuksen, jos mutex ei ole tällä hetkellä lukittuna.
Poikkeukset¶
- exception mutex.MutexException¶
OSError-poikkeuksen aliluokka. NostetaanMutex.release-metodilla, kun mutex on jo lukitsematon.