Lock锁的问题

多个线程共用一个锁时,同一时间只有一个可获得锁执行,其他线程会阻塞进入队列,按理解事件如果是多线程的,那么每次事件触发的含lock的函数都会将进入队列等待,越排越多。需待实验证明。

 public class Test
    {


       public void Fun1()
       {
           Task.Factory.StartNew(() => { 
           
           while(true)
           {
               Excute("线程1:");

           }
           
           
           });

       }
       public void Fun2()
       {
           Task.Factory.StartNew(() =>
           {

               while(true)
               {
                   Excute("线程2:");

               }


           });

       }

       public void Fun3()
       {
           Task.Factory.StartNew(() =>
           {

               while (true)
               {
                   Excute("线程3:");

               }


           });

       }
       object ob = new object();
       int A = 0;
       public void Excute(string id)
       {
           lock(ob)
           {
               Console.WriteLine(id+A.ToString());
               Thread.Sleep(2000);
               A++;
           }
          


       }

    }

Lock锁的问题Lock锁的问题 luckyone906 发布了162 篇原创文章 · 获赞 264 · 访问量 107万+ 他的留言板 关注
上一篇:Verilog scalar and vectorVerilog标量和向量


下一篇:网络基础——TCP/IP五层模型