Çok kullanıcılı (concurrent) ortamlarda bir kaynak paylaşılıyorsa, kaynağa ulaşım için bir bir bekçinin olması durumu vardır. Yani başta birisi vardır o eleman der ki dur arkadaş şu anda bu kaynak kullanılıyor, sıranı bekle. Bu arkadaş semafor oluyor. Bunun birkaç farklı gerçekleştirimi vardır. Genel anlamda semafor düz bir değişken de olabilir, yeni erişim bekleyenler için sayı sayabilir. Yani birisi geldi bu kaynağı kullanmak istiyor sayacı bir artır. Birinin işi bitti gitti, sayacı bir düşür şeklinde çalışabilir. Bu bize kaynağın boşa çıkması için kaç kişinin işini bitirmesi gerekiyor sorusunu cevaplar ya da bu kaynağı kullanmak için sırada kaç arkadaş var onu cevaplar.
Bu yaklaşım yerine sadece boolean bir değişken olup kaynak müsait veya değil şeklinde de geliştirilebilir. Buna mutex deniyor.
Fotokopi makinasını kullanacak bir sürü arkadaş var. Başında da bir eleman var durun sırada 10 kişi var diyor. Bu 10 kişiyi rastgelede girebilir. Arkadaş bir veri yapısı ayarlayıp kendi adına sıraya da sokabilir. Ya da hiçbirşeye karışmaz. Fotokopi dolu veya boş şeklinde de bilgilendirebilir.
Kullanım size kalmış.