多lock的应用实验

 进程锁的实验。

 动态锁的探索。 

 public static readonly object obj=new object();

    private static readonly List<object> lockidc = new List<object>() { new object(),new object(),new object()};

    private static readonly Dictionary<string, object> objdic = new Dictionary<string, object>();

    private static readonly object[] objlist = new object[20] ;

    protected object GetLockObj(string key)
    {

        if (objdic.ContainsKey(key))
        {
            return objdic[key];
        }
        else
        {
            lock (obj)
            {
                if (objdic.ContainsKey(key))
                {
                    return objdic[key];
                }
                else
                {
                    objdic.Add(key, new object());
                    return objdic[key];
                }
            }
        }

    }


    static  PSIDemo()
    {

        for (int i = 0; i < objlist.Length; i++)
        {
            objlist[i] = new object();
        }
    }

    private static List<long> orderlist = new List<long>();

    private void AddOrder(long orderid)
    {
        System.Threading.Thread.Sleep(100);
        orderlist.Add(orderid);
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        //object lockobj=

        System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
        stopwatch.Start();
       
        for (int i = 0; i < 1000; i++)
        {
            int tempid = i%20;
            //lock (GetLockObj(1.ToString()))
            lock(objlist[tempid])
            {

            }
        }

        stopwatch.Stop();

        Response.Write(stopwatch.Elapsed.TotalMilliseconds);
       
        Response.Write("<br>");
        stopwatch.Reset();
        stopwatch.Start();
        for (int i = 0; i < 1000; i++)
        {
            lock (obj)
            {

            }
        }
        stopwatch.Stop();
        Response.Write(stopwatch.Elapsed.TotalMilliseconds);
        return;
}

 

posted on 2018-09-11 17:36  西湖浪子  阅读(180)  评论(0)    收藏  举报