C#多线程编程实例实战
所谓单个写入程序/多个阅读程序的线程同步问题,是指任意数量的线程访问共享资源时,写入程序(线程)需要修改共享资源,而阅读程序(线程)需要读取数据。在这个同步问题中,很容易得到下面二个要求:
1) 当一个线程正在写入数据时,其他线程不能写,也不能读。
2) 当一个线程正在读入数据时,其他线程不能写,但能够读。
在数据库应用程序环境中经常遇到这样的问题。比如说,有n个最终用户,他们都要同时访问同一个数据库。其中有m个用户要将数据存入数据库,n-m个用户要读取数据库中的记录。
很显然,在这个环境中,我们不能让两个或两个以上的用户同时更新同一条记录,如果两个或两个以上的用户都试图同时修改同一记录,那么该记录中的信息就会被破坏。
我们也不让一个用户更新数据库记录的同时,让另一用户读取记录的内容。因为读取的记录很有可能同时包含了更新和没有更新的信息,也就是说这条记录是无效的记录。
实现分析
规定任一线程要对资源进行写或读操作前必须申请锁。根据操作的不同,分为阅读锁和写入锁,操作完成之后应释放相应的锁。将单个写入程序/多个阅读程序的要求改变一下,可以得到如下的形式:
一个线程申请阅读锁的成功条件是:当前没有活动的写入线程。
一个线程申请写入锁的成功条件是:当前没有任何活动(对锁而言)的线程。
您可能关注的文档
- C4008故障修订版选读.doc
- SL176-2007水利水电工程施工质量检验与评定规程选读.doc
- B区开盘执行方案9.11选读.doc
- SL223-1999水利水电工程验收常用格式选读.doc
- C930E防刷机程序下载操作说明选读.doc
- 案例清华附中坍塌事故调查发布,施工、监理等16人面临刑事处罚选读.doc
- SMA-13生产配合比选读.doc
- CA6140拨叉831003说明书蚌埠学院课程设计选读.doc
- SMC模板租赁合同选读.doc
- CA6140车床的拨叉831003--课程设计说明书(小批量)选读.doc
- 【上海文化创意产业的市场结构分析案例10000字】.docx
- 2026年高考数学全国乙卷试卷含答案.docx
- 2026年高考甲卷理综生物基础培训考试综合试卷.docx
- 2026年危险货物运输从业人员应急处置实操真题模拟考试及答案.docx
- 20230120年产900吨山楂制品项目潍坊市临朐县临朐县蒋峪镇西长命沟村西200米山东顺方食品科技有限公司01山东顺方食品科技有限公司年产900吨山楂制品项目.pdf
- 2026年危险化学品储存与使用安全培训真题试卷及答案.docx
- 20230119年产2000吨隔热条项目潍坊市临朐县东城街道秦池路以北东四路以西山东程诺塑业科技有限公司山东程诺塑业科技有限公司环评报告表公示(1).pdf
- 2026年高考生物全国一卷考试卷附答案.docx
- 2026年高考北京卷政治真题及答案.docx
- 医院药房的考试试题及答案.docx
原创力文档

文档评论(0)