有5个学生参加考试,请使用线程模拟学生考试,要求输出每个学生的考号和考试是否结束信息(可以调用sleep方法使线程休眠一段时间以模拟考试过程)分别使用Thread和Runnable两种方法实现
时间: 2023-03-25 21:03:16 浏览: 109
好的,我可以回答这个问题。以下是使用Thread和Runnable两种方法实现的代码:
使用Thread实现:
```
class StudentThread extends Thread {
private int studentId;
public StudentThread(int studentId) {
this.studentId = studentId;
}
public void run() {
System.out.println("学生" + studentId + "开始考试");
try {
Thread.sleep((int) (Math.random() * 500)); // 模拟考试过程
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("学生" + studentId + "考试结束");
}
}
public class Exam {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
new StudentThread(i).start();
}
}
}
```
使用Runnable实现:
```
class StudentRunnable implements Runnable {
private int studentId;
public StudentRunnable(int studentId) {
this.studentId = studentId;
}
public void run() {
System.out.println("学生" + studentId + "开始考试");
try {
Thread.sleep((int) (Math.random() * 500)); // 模拟考试过程
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("学生" + studentId + "考试结束");
}
}
public class Exam {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
new Thread(new StudentRunnable(i)).start();
}
}
}
```
以上就是使用线程模拟学生考试的代码,每个学生的考号和考试是否结束信息都会被输出。
阅读全文