使用Java语言实现,有5个学生参加考试,请使用线程模拟学生考试,要求输出每个学生的考号和考试是否结束信息(可以调用sleep方法使线程休眠一段时间以模拟考试过程)。分别使用Thread和Runnable两种方法实现。
时间: 2023-03-28 15:01:27 浏览: 80
好的,这是一个关于Java多线程的问题。我可以回答。
使用Thread实现:
```
class ExamThread extends Thread {
private int studentId;
public ExamThread(int studentId) {
this.studentId = studentId;
}
@Override
public void run() {
System.out.println("学生" + studentId + "开始考试");
try {
Thread.sleep((int) (Math.random() * 10000));
} 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 ExamThread(i).start();
}
}
}
```
使用Runnable实现:
```
class ExamRunnable implements Runnable {
private int studentId;
public ExamRunnable(int studentId) {
this.studentId = studentId;
}
@Override
public void run() {
System.out.println("学生" + studentId + "开始考试");
try {
Thread.sleep((int) (Math.random() * 10000));
} 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 ExamRunnable(i)).start();
}
}
}
```
以上就是使用Java语言实现模拟学生考试的代码,每个学生的考号和考试是否结束信息都会被输出。
阅读全文