用C或java编写排队服务程序

用C或java编写排队服务程序,第1张

这个简单。

先做几个实体

客户,售货员,

客户包括到达时间,完成目标需要的时间,开始 *** 作的时间,结束的时间。

售货员包括当前正在服务的客户

开2个线程。一个是客户产生线程。

一个是售货员消费线程

中间用个公共寄存体queue。

客户产生线程每次产生一个带到达时间,完成目标时间的客户。

放倒队列里,并提醒售货员线程接收。

售货员线程空置则从队列里拿一个客户,当前时间=当前时间和客户到达的时间最大的一个。客户的开始 *** 作时间=当前时间

结束时间=当前时间+需要时间。

处理完以后当前时间=结束时间。

如果队列空,售货员线程等待。

不为空就继续取。

注意所有处理过的客户都需要放到一个List里。

然后这一天结束了,就把整个List里的客户全部取出来,就算平均等待时间,各种时间。。。。这个会统计的吧。

要求追分

可以有两种结构:

1 就是像你说的写一个服务器+ 一个客户端程序,服务器管理所有数据及给客户端回应.

客户端可以开N个程序,模拟银行的N个窗口.

每一个都跟服务器进行通信,这涉及到网络编程,难度比较大.优点结构比较稳定,所有服务由服务器进行调度,安全.

2 就是只写一个应用程序,运行时可运行N个,但都共用一个数据源(数据库数据).

程序一接到响应就去数据库中检查当前有哪些地排队,选号最小的报.只涉及到数据库编程,但有一个致命缺点就是:当你开窗口很多,几个程序同时申请报号时,程序会在同一时间去检查数据库中的同一条记录,这个估计有点麻烦,就是不支持并发的意思...

简单提示到这里,其它自己研究吧.

有问题随时准备共同探讨.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11587296.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存