SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alfredo Garcia

    Alfredo Garc

    25 Mayıs 2007
  • Blue Lightning TV

    Blue Lightni

    9 EKİM 2011
  • Helen Bradley

    Helen Bradle

    4 Mart 2008