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