Monitory
Užitečné odkazy
V jazyce Python nenalezneme přímý ekvivalent monitorů. Nejblíže se funkcionalitou blíží třída threading.Condition. Pomoci Condition můžeme monitor naprogramovat, mimo zámek totiž podporuje i metody .wait() a .notify().
U třídy Condition lze využít kontext manažerů, kteří se postarají o odemčení a zamčení vnitřního zámku.
1
2
3
4
5
6
7
8
9
10
# Consume one item
with cv:
while not an_item_is_available():
cv.wait()
get_an_available_item()
# Produce one item
with cv:
make_an_item_available()
cv.notify()
Úkol
Naprogramujte úlohu producent a konzument (omezený buffer) - synchronizace pomoci monitoru (Příjmout úkol).