
可以看到3号线程和4号线程能够同时进入读模式,而5号线程过了5秒钟后(即3,4号线程退出读锁后),才能进入写模式。
把上述代码修改一下,先开启2个写模式的线程,然后在开启读模式线程,代码如下:
- static void Main(string[] args) {
- Thread t_write1 = new Thread(new ThreadStart(WriteSomething)); t_write1.Start();
- 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));
- t_write2.Start(); Console.WriteLine("{0} Create Thread ID {1} , Start WriteSomething", DateTime.Now.ToString("hh:mm:ss fff"), t_write2.GetHashCode());
- Thread t_read1 = new Thread(new ThreadStart(ReadSomething)); t_read1.Start();
- 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));
- t_read2.Start(); Console.WriteLine("{0} Create Thread ID {1} , Start ReadSomething", DateTime.Now.ToString("hh:mm:ss fff"), t_read2.GetHashCode());
- }
结果如下:










