本文共 525 字,大约阅读时间需要 1 分钟。
多个线程共用一个锁时,同一时间只有一个可获得锁执行,其他线程会阻塞进入队列,按理解事件如果是多线程的,那么每次事件触发的含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++; } }}
转载地址:http://jrows.baihongyu.com/