先做几个实体
客户,售货员,
客户包括到达时间,完成目标需要的时间,开始 *** 作的时间,结束的时间。
售货员包括当前正在服务的客户,
开2个线程。一个是客户产生线程。
一个是售货员消费线程
中间用个公共寄存体queue。
客户产生线程每次产生一个带到达时间,完成目标时间的客户。
放倒队列里,并提醒售货员线程接收。
售货员线程空置则从队列里拿一个客户,当前时间=当前时间和客户到达的时间最大的一个。客户的开始 *** 作时间=当前时间
结束时间=当前时间+需要时间。
处理完以后当前时间=结束时间。
如果队列空,售货员线程等待。
不为空就继续取。
注意所有处理过的客户都需要放到一个List里。
然后这一天结束了,就把整个List里的客户全部取出来,就算平均等待时间,各种时间。。。。这个会统计的吧。
要求追分
可以有两种结构:1 就是像你说的写一个服务器+ 一个客户端程序,服务器管理所有数据及给客户端回应.
客户端可以开N个程序,模拟银行的N个窗口.
每一个都跟服务器进行通信,这涉及到网络编程,难度比较大.优点结构比较稳定,所有服务由服务器进行调度,安全.
2 就是只写一个应用程序,运行时可运行N个,但都共用一个数据源(数据库数据).
程序一接到响应就去数据库中检查当前有哪些地排队,选号最小的报.只涉及到数据库编程,但有一个致命缺点就是:当你开窗口很多,几个程序同时申请报号时,程序会在同一时间去检查数据库中的同一条记录,这个估计有点麻烦,就是不支持并发的意思...
简单提示到这里,其它自己研究吧.
有问题随时准备共同探讨.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)