JAVA使用多线程模拟员工宿舍分配流程,具体要求如下:
(1) 定义“Employee”类,包括两个成员变量:“id”和“dormId”。成员变量“id”唯一标识“Employee”类的对象,并且在分配宿舍时分配成员变量“dormId”;
(2) 生成80个“Employee”类实例并将其存储在HashSet中。
容器只需要存储Employee类型,不能存储id相同的Employee类的实例(提示:需要重写hashCode()和equals()方法);
(3) 使用4个线程将这些员工实例随机分配到4个宿舍楼。每个宿舍楼有20名员工,并根据他们在宿舍楼中的分配顺序分配dormId,例如:0306,表示宿舍楼3的6号房间。同时,“id”和“dormId”作为结果保存在文件“employee.txt”中
![](https://profile-avatar.csdnimg.cn/fde3034d757846bdb0161223034a4add_qq_52309893.jpg!4)
使用多线程模拟员工宿舍分配流程
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- B.w.. 2023-06-10 20:43关注
用了三个宿舍,还是有一定瑕疵,但是写文件,互斥基本解决了 (主要针对第三问)
package pt; import java.awt.print.Printable; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import javax.swing.Box.Filler; public class practice implements Runnable{ private int num = 0; @Override public void run() { for(int i=0; i<40; i++){ live(); } } public void live(){ try { File file = new File("employ.text"); if(!file.exists()) { file.createNewFile(); } FileWriter fileWriter = new FileWriter(file.getName(),true); try { Thread.sleep(300); //休息300毫秒 } catch (InterruptedException e) { e.printStackTrace(); } if(this.num<=80){ //打印买票信息 System.out.println(Thread.currentThread().getName() + "入住id: " + this.num++); fileWriter.write(Thread.currentThread().getName() + "入住id: " + this.num++); fileWriter.close(); } } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } public static void main(String[] args) { practice ticketThread = new practice(); new Thread(ticketThread,"宿舍1").start(); //线程一 new Thread(ticketThread,"宿舍2").start(); //线程一 new Thread(ticketThread,"宿舍3").start(); //线程一 } }
解决评论 打赏 举报 编辑记录无用 1
悬赏问题
- ¥15 (标签-考研|关键词-set)
- ¥15 求修改代码,图书管理系统
- ¥15 请问有没求偏多标签数据集yeast,reference,recreation,scene,health数据集。
- ¥15 传感网应用开发单片机实训
- ¥15 Delphi 关于sAlphaImageList使用问题
- ¥15 寻找将CAJ格式文档转txt文本的方案
- ¥15 shein测试开发会问些啥我是写java的
- ¥15 关于#单片机#的问题:我有个课程项目设计,我想在STM32F103veTX单片机,M3主控模块上设计一个程序,在Keil uVision5(C语言)上代码该怎么编译?(嫌钱少我可以加钱,急急急)
- ¥15 opnet仿真网络协议遇到问题
- ¥15 在安装python的机器学习程序包scikit-learn(1.1版本)时遇到如下问题