题目
实现一个医院的挂号机系统,要求:有多台挂号机同时运行,此时无论有多少患者挂号,要求都能挂到不同
的号码,并且要求实现当意外断电之后,下一次恢复还能从上次结束号码继续挂号?
* synchronized
* 文件操作
* IO流
解题思路
此题的难点在于这个断电,首先java处理断电续传等问题,一般我们使用RandomAccessFile这个流,因为它里面
有个seek方法,可以设置光标的偏移量,可以从超大的文本中快速定位我们的游标。所以我们可以将已经挂的号存
到一个新文件,然后每个线程执行挂号的时候都读取新文件的length长度作为seet的偏移量,以此来达到断电之后
也能从上次结束号码继续挂号。
源代码如下:
package com.thospital;
/**
* User:zhang
* Date:2020/11/10
**/
import java.io.*;
public class TestHospital {
public static void putNum(File file) {
try {
DataOutputStream dos = new DataOutputStream(new FileOutputStream(file));
for (int i = 1; i < 10001; i++) {
dos.writeInt(i);
}