#实现语言:C#
#问题描述
有一个阅览室,共有10个座位,读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名等,读者离开时要消掉登记的信息
#问题分析
读者的动作有两个,一是填表进入阅览室,这时要考虑阅览室里是否有座位;一是读者阅读完毕,离开阅览室,这时的操作要考虑阅览室里是否有读者.读者在阅览室读书时,由于没有引起资源的变动,不算动作变化.
算法的信号量有三个:SeatCount——表示阅览室是否有空座位(初值为10,代表阅览室的空座位数);用于互斥的Mutex,初值为1.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;namespace ConsoleApplication1
{class Program{private static Semaphore SeatCount, Mutex;private static string[] table = new string[10];  //模拟座位登记表static void Main(string[] args){SeatCount = new Semaphore(10, 10);Mutex = new Semaphore(1, 1);for (int i = 0; i < 100; i++) // i代表读者数{Thread aa = new Thread(reader);aa.Start();}}public static void reader(){SeatCount.WaitOne();Mutex.WaitOne();for (int i = 0; i < 10; i++){if (table[i] == null || table[i] == ""){Console.WriteLine("已登记");table[i] = "AAA";break;}}Mutex.Release();Console.WriteLine("阅读中");Thread.Sleep(5000);Mutex.WaitOne();Console.WriteLine("注销");for (int i = 0; i < 10; i++){if (table[i] == "AAA"){table[i] = "";break;}}Mutex.Release();SeatCount.Release();}}
}

阅览室问题(C#实现)相关推荐

  1. PTA L1_043 阅览室(详解坑点)

    PTA L1_043 阅览室(详解及坑点) 阅览室 一.问题再现 二.问题分析 (一).输入分析 (二).规则分析 (三).输出分析 三.坑点分析 (一).到底有多坑 (二).测试点0,2 (三).测 ...

  2. C语言 满分代码:L1-043 阅览室 (20分)(解题报告)

    立志用更少的代码做更高效的表达 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超 ...

  3. L1-043 阅览室 (20 分)(在线模拟题)

    L1-043 阅览室 (20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为 ...

  4. 7-183 阅览室 (20 分)

    7-183 阅览室 (20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不 ...

  5. 图书室用计算机,电子阅览室使用

    电子阅览室使用规定 1.在校学生凭阅览证进入电子阅览室. 2.爱护室内的所有设备,发现计算机有异常时,要及时向管理员报告.软.硬件系统均由管理员进行维护和管理,严禁私自拆卸机器.修改系统设置. 3.严 ...

  6. L1-043 阅览室-PAT团体程序设计天梯赛GPLT

    天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超过1000的正整数.当管理员将0 ...

  7. 中学图书室管理用计算机,中学“学生电子阅览室管理制度”

    中学"学生电子阅览室管理制度" "电子阅览室"是全校师生通过现代媒体进行探究式学习.主动构建知识的重要场所,为确保软硬件系统的可靠运行,有效地为广大学生服务,创 ...

  8. 为何要开办《微积分阅览室》?

    对每一个现代文明人而言,都需要经过学校教育阶段才能进入社会,才能在社会中生存.总之,社会发展需要教育,而教育的社会成本是很高的.这是常识. 回顾历史,1675年,莱布尼兹发明了无穷小方法(含有逻辑矛盾 ...

  9. 基于ssm技术的校自助阅览室的设计与实现毕业设计源码242326

    SSM校自助阅览室 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题.针对校 ...

  10. (附源码)ssm+mysql+基于ssm技术的校自助阅览室的设计与实现 毕业设计242326

    SSM校自助阅览室 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题.针对校 ...

最新文章

  1. Django 验证码4.4
  2. QIIME 2教程. 15样品分类和回归q2-sample-classifier(2020.11)
  3. loadrunner中的c函数----从参数列表中取参数并与特定字符进行字符串比较。
  4. php168齐博,php168整站系统(齐博CMS)下载
  5. 怎么样提高自己的口才
  6. at for lte
  7. javaScript = == ===的区别
  8. 网站SEO优化--Flash站优化方法
  9. 訪问可能没有定义的data (通过static类型flash.net:FileReference引用)
  10. 重物码垛搬运机器人_米克力美AGV:工业机器人的应用场景
  11. php高效率敏感词屏蔽,高效的敏感词过滤方法(PHP)
  12. Google 研究主管Peter Norvig:你想当程序员么?这里有成功的“食谱”
  13. .net 简单的后台合成图片
  14. 117道有关大数据面试题解析,希望对你有所帮助
  15. 北京轨道交通新机场线“无人驾驶” 最高时速160公里
  16. 轻松搞定应用启动黑白屏
  17. 7-6 愿天下有情人都是失散多年的兄妹(25 分)
  18. adf被打开_ADF格式文件 如何打开ADF文件 ADF是什么格式的文件 用什么打开 - The X Online Tools...
  19. L5W3作业2 关键字语音识别
  20. INSERT INTO语句

热门文章

  1. Web应用引入中文字体问题
  2. EPIPE和ECONNRESET
  3. flowable-ui(v6.7.2)工作流概要
  4. 怎么办嘛,无法反驳!
  5. 哔哩哔哩视频如何自定义适应移动端
  6. 三个月找不到工作,我该怎么办?
  7. 《生命·觉者》蔡志忠:一个人,活出自己是最重要的
  8. 用Odoo实现企业数字化转型有什么好的?
  9. 使用 Flv.js 和 Reflv 播放视频
  10. 一文带你通俗理解23种软件设计模式(推荐收藏,适合小白学习,附带C++例程完整源码)