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).