如何使用C#读写锁ReaderWriterLockSlim

2019-12-26 13:08:45于海丽

如何使用C#读写锁ReaderWriterLockSlim

可以看到3号线程和4号线程能够同时进入读模式,而5号线程过了5秒钟后(即3,4号线程退出读锁后),才能进入写模式。

把上述代码修改一下,先开启2个写模式的线程,然后在开启读模式线程,代码如下:

 

 
  1. static void Main(string[] args)  { 
  2. Thread t_write1 = new Thread(new ThreadStart(WriteSomething));  t_write1.Start(); 
  3. Console.WriteLine("{0} Create Thread ID {1} , Start WriteSomething", DateTime.Now.ToString("hh:mm:ss fff"), t_write1.GetHashCode());  Thread t_write2 = new Thread(new ThreadStart(WriteSomething)); 
  4. t_write2.Start();  Console.WriteLine("{0} Create Thread ID {1} , Start WriteSomething", DateTime.Now.ToString("hh:mm:ss fff"), t_write2.GetHashCode()); 
  5. Thread t_read1 = new Thread(new ThreadStart(ReadSomething));  t_read1.Start(); 
  6. Console.WriteLine("{0} Create Thread ID {1} , Start ReadSomething", DateTime.Now.ToString("hh:mm:ss fff"), t_read1.GetHashCode());  Thread t_read2 = new Thread(new ThreadStart(ReadSomething)); 
  7. t_read2.Start();  Console.WriteLine("{0} Create Thread ID {1} , Start ReadSomething", DateTime.Now.ToString("hh:mm:ss fff"), t_read2.GetHashCode()); 

结果如下: