Semaphore Müşteriler = 0
Semaphore Berber = 0
Semaphore sandalyelereErişim = 1 # mutex
int BoşSandalyeSayısı = N # toplam sandalye sayısı
def Berber():
while true: # Bir sonsuz döngü içinde çalış.
P(Müşteriler) # Bir müşteri yakalamaya çalış. Eğer uygun bir müşteri yoksa uyu.
P(sandalyelereErişim) # Uyandım - uygun sandalye sayısını değiştir.
BoşSandalyeSayısı++ # Bir sandalye boşa çıktı.
V(Berber) # Tıraşa hazırım.
V(sandalyelereErişim) # Artık sandalyeler üzerinde kilide ihtiyaç yok.
# (Tıraş)
def Müşteri():
while true: # Bir sonsuz döngü içinde çalış.
P(sandalyelereErişim) # Sandalyelere ulaşmaya çalış.
if BoşSandalyeSayısı > 0: # Eğer boşta sandalye varsa:
BoşSandalyeSayısı-- # bir sandalyeye otur
V(Müşteriler) # müşteri bekleyen berberi uyar
V(sandalyelereErişim) # artık sandalyeler üzerinde kilide ihtiyaç yok
P(Berber) # sıra bu müşterinin, fakat berber meşgulse bekle.
# (Tıraş)
else: # boşta sandalye yok; şanssızlık...
V(sandalyelereErişim) # sandalyeler üzerindeki kilidi bırakmayı unutma!
# (Tıraş olmadan ayrıl)