using System;
using System.Threading;
namespace ProcessTest
{
class Program
{
//资源
static int theResource = 0;
//读、写操作锁
static ReaderWriterLock rwl = new ReaderWriterLock();
static void Main(string[] args)
{
//分别创建2个读操作线程,2个写操作线程,并启动
Thread tr0 = new Thread(new ThreadStart(Read));
Thread tr1 = new Thread(new ThreadStart(Read));
Thread tr2 = new Thread(new ThreadStart(Write));
Thread tr3 = new Thread(new ThreadStart(Write));
tr0.Start();
tr1.Start();
tr2.Start();
tr3.Start();
//等待线程执行完毕
tr0.Join();
tr1.Join();
tr2.Join();
tr3.Join();
System.Console.ReadKey();
}
//读数据
static void Read()
{
for (int i = 0; i < 3; i++)
{
try
{
//申请读操作锁,如果在1000ms内未获取读操作锁,则放弃
rwl.AcquireReaderLock(1000);
Console.WriteLine("开始读取数据,theResource = {0}", theResource);
Thread.Sleep(10);
Console.WriteLine("读取数据结束,theResource = {0}", theResource);
//释放读操作锁
rwl.ReleaseReaderLock();
}
catch (ApplicationException)
{
//获取读操作锁失败的处理
}
}
}
//写数据
static void Write()
{
for (int i = 0; i < 3; i++)
{
try
{
//申请写操作锁,如果在1000ms内未获取写操作锁,则放弃
rwl.AcquireWriterLock(1000);
Console.WriteLine("开始写数据,theResource = {0}", theResource);
//将theResource加1
theResource++;
Thread.Sleep(100);
Console.WriteLine("写数据结束,theResource = {0}", theResource);
//释放写操作锁
rwl.ReleaseWriterLock();
}
catch (ApplicationException)
{
//获取写操作锁失败
}
}
}
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有