29 AĞUSTOS 2008, Cuma
Bir semafor nedir?
Bir semafor sık Çoklu-işlem sorunlarını çözmek için kullanılan bir programlama kavramıdır. Topluluk sorum şu:
Bir semafor nedir ve nasıl kullanılır?
CEVAP
2 EYLÜL 2008, Salı
Bir gece kulübünde fedai olarak semafor düşünüyorum. Kulüpte bir seferde izin verilen insanların özel bir numarası vardır. Eğer kulüp doluysa kimse girmek için izin verilir, ama bir kişi ayrılır ayrılmaz başka bir kişi girebilir.
Sadece belirli bir kaynak için tüketicilerin sayısını sınırlamak için bir yol var. Örneğin, eşzamanlı sayısını sınırlamak için bir uygulama, bir veritabanı için çağırır.
Burada C çok pedagojik bir örnek :-)
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace TheNightclub
{
public class Program
{
public static Semaphore Bouncer { get; set; }
public static void Main(string[] args)
{
// Create the semaphore with 3 slots, where 3 are available.
Bouncer = new Semaphore(3, 3);
// Open the nightclub.
OpenNightclub();
}
public static void OpenNightclub()
{
for (int i = 1; i <= 50; i )
{
// Let each guest enter on an own thread.
Thread thread = new Thread(new ParameterizedThreadStart(Guest));
thread.Start(i);
}
}
public static void Guest(object args)
{
// Wait to enter the nightclub (a semaphore to be released).
Console.WriteLine("Guest {0} is waiting to entering nightclub.", args);
Bouncer.WaitOne();
// Do some dancing.
Console.WriteLine("Guest {0} is doing some dancing.", args);
Thread.Sleep(500);
// Let one guest out (release one semaphore).
Console.WriteLine("Guest {0} is leaving the nightclub.", args);
Bouncer.Release(1);
}
}
}
Bunu Paylaş:
Java dışlama ve semafor nedir ? Temel ...
Tek Yönlü ve çift Yönlü dernekler aras...
ıntel android sdk manager 86 atom sist...
Bu İmzalamak için Git özelliği nedir?...
Karakter URL sınırı nedir...