Semafory
Užitečné odkazy
V jazyce python nalezneme semafory implementované v tříde threading.Semaphore
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from threading import Semaphore
# výchozí hodnota na 1
s = Semaphore()
# pro jinou hodnotu předáme číslo
s = Semaphore(5)
# podporuje dvě hlavní metody
# acquire, sníží hodnotu semaforu o jedna, je blokující
s.acquire()
# release, zvýší hodnotu semaforu o jedna, možné použít parametr n pro zvýšení o n
s.release()
Úkol
Naprogramujte úlohu producent a konzument s omezeným bufferem - synchronizace pomoci semaforů (Příjmout úkol).
Úkol
Naprogramujte úlohu čtenáři a písaři ve variantě upřednostnění čtenářů - synchronizace pomoci semaforů (Příjmout úkol).