请你利用接口Runnable编写线程程序,模拟学生从教室的前后门进入教室,并统计前后门进入的学生人数。
时间: 2024-02-21 10:57:01 浏览: 53
好的,下面是利用接口 Runnable 编写的模拟学生进出教室的线程程序,同时统计前后门进入的学生人数:
```java
public class Classroom implements Runnable {
private String door;
private int count = 0;
private static int totalCount = 0;
public Classroom(String door) {
this.door = door;
}
public void run() {
for (int i = 0; i < 10; i++) {
try {
// 模拟学生进入教室的过程
Thread.sleep((int) (Math.random() * 500));
} catch (InterruptedException e) {
e.printStackTrace();
}
// 统计前后门进入的学生人数
synchronized (this) {
count++;
totalCount++;
System.out.println(Thread.currentThread().getName() + " 从" + door + "进入教室,已有" + count + "人,总计" + totalCount + "人");
}
}
}
public static void main(String[] args) {
Classroom frontDoor = new Classroom("前门");
Classroom backDoor = new Classroom("后门");
Thread t1 = new Thread(frontDoor, "学生1");
Thread t2 = new Thread(backDoor, "学生2");
t1.start();
t2.start();
}
}
```
在这个例子中,我们创建了两个 Classroom 对象(一个代表前门,一个代表后门),并创建了两个线程分别模拟学生从前门和后门进入教室的过程。在进入教室的过程中,我们使用了 synchronized 关键字来保证了线程安全,同时统计了前门和后门进入的学生人数。最后,我们启动了两个线程,模拟了学生进出教室的过程。
阅读全文