6 entry daha
  • programlamada kullanılan bir keyword'dür. verildiği scope'u kilitleyerek thread'leri senkronize eden bir mekanizmadır.

    c# için,

    internal sealed class singletonlocked
    {
    private static object _lock = new object();

    private static singletonlocked _instance;

    public static singletonlocked instance
    {
    get
    {
    lock (_lock)
    {
    if (_instance == null)
    {
    console.writeline("singletonlocked => nesne oluşturuldu.");

    _instance = new singletonlocked();
    }
    else
    {
    console.writeline("singletonlocked => nesne kullanıldı.");
    }

    return _instance;
    }

    }
    }

    public void donothing()
    {
    }

    private singletonlocked()
    {
    }
    }

    test için;

    parallel.for(0, 10, i =>
    {
    singletonlocked.instance.donothing();
    });

    çıktı;

    singletonlocked => nesne oluşturuldu.
    singletonlocked => nesne kullanıldı.
    singletonlocked => nesne kullanıldı.
    singletonlocked => nesne kullanıldı.
    singletonlocked => nesne kullanıldı.
    singletonlocked => nesne kullanıldı.
    singletonlocked => nesne kullanıldı.
    singletonlocked => nesne kullanıldı.
    singletonlocked => nesne kullanıldı.
    singletonlocked => nesne kullanıldı.

    burada lock kullanılmasaydı, üretilen nesne sayısı birden fazla olabilirdi, bu da singleton mantığına terstir.
1 entry daha
hesabın var mı? giriş yap