使用Java语言实现有5个学生参加考试,请使用线程模拟学生考试,要求输出每个学生的考号和考试是否结束信息(可以调用sleep方法使线程休眠一段时间以模拟考试过程)。分别使用Thread和Runnable两种方法实现。
时间: 2023-03-28 12:01:26 浏览: 144
好的,这是一个关于Java语言的问题,我可以回答。对于这个问题,我们可以使用Thread和Runnable两种方法实现。使用Thread方法,我们可以创建一个继承自Thread类的子类,并重写run()方法来实现线程的逻辑。使用Runnable方法,我们可以创建一个实现了Runnable接口的类,并实现run()方法来实现线程的逻辑。在每个线程中,我们可以使用sleep()方法来模拟考试过程,并输出每个学生的考号和考试是否结束信息。
相关问题
使用Java语言实现,有5个学生参加考试,请使用线程模拟学生考试,要求输出每个学生的考号和考试是否结束信息(可以调用sleep方法使线程休眠一段时间以模拟考试过程)。分别使用Thread和Runnable两种方法实现。
好的,这是一个关于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语言实现模拟学生考试的代码,每个学生的考号和考试是否结束信息都会被输出。
使用Java语言有5个学生参加考试,请使用线程模拟学生考试,要求输出每个学生的考号和考试是否结束信息(可以调用sleep方法使线程休眠一段时间以模拟考试过程)分别使用Thread和Runnable两种方法实现
好的,这是一个关于Java语言的问题,我可以回答。以下是使用Thread和Runnable两种方法实现学生考试的代码:
使用Thread实现:
```
public class Student extends Thread {
private int id;
private boolean isFinished;
public Student(int id) {
this.id = id;
this.isFinished = false;
}
public void run() {
try {
System.out.println("学生" + id + "开始考试");
Thread.sleep((int) (Math.random() * 500)); // 模拟考试过程
System.out.println("学生" + id + "考试结束");
isFinished = true;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public boolean isFinished() {
return isFinished;
}
}
public class Exam {
public static void main(String[] args) {
Student[] students = new Student[5];
for (int i = ; i < 5; i++) {
students[i] = new Student(i + 1);
students[i].start();
}
while (true) {
boolean allFinished = true;
for (int i = ; i < 5; i++) {
if (!students[i].isFinished()) {
allFinished = false;
break;
}
}
if (allFinished) {
break;
}
}
System.out.println("考试结束");
}
}
```
使用Runnable实现:
```
public class Student implements Runnable {
private int id;
private boolean isFinished;
public Student(int id) {
this.id = id;
this.isFinished = false;
}
public void run() {
try {
System.out.println("学生" + id + "开始考试");
Thread.sleep((int) (Math.random() * 500)); // 模拟考试过程
System.out.println("学生" + id + "考试结束");
isFinished = true;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public boolean isFinished() {
return isFinished;
}
}
public class Exam {
public static void main(String[] args) {
Student[] students = new Student[5];
Thread[] threads = new Thread[5];
for (int i = ; i < 5; i++) {
students[i] = new Student(i + 1);
threads[i] = new Thread(students[i]);
threads[i].start();
}
while (true) {
boolean allFinished = true;
for (int i = ; i < 5; i++) {
if (!students[i].isFinished()) {
allFinished = false;
break;
}
}
if (allFinished) {
break;
}
}
System.out.println("考试结束");
}
}
```
以上就是使用线程模拟学生考试的代码,希望能对你有所帮助。
阅读全文