java 模拟三个老师同时给50歌小朋友发苹果,每个老师相当于一个线程
时间: 2024-01-21 21:04:30 浏览: 190
好的,您可以使用 Java 的多线程技术来实现这个模拟场景。首先,您需要定义一个小朋友对象和一个老师对象,然后将 50 个小朋友随机分配给三个老师。
下面是一个基本的示例代码:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class TeacherAndChildrenDemo {
public static void main(String[] args) {
List<Teacher> teachers = new ArrayList<>();
teachers.add(new Teacher("Teacher A"));
teachers.add(new Teacher("Teacher B"));
teachers.add(new Teacher("Teacher C"));
List<Child> children = new ArrayList<>();
for (int i = 1; i <= 50; i++) {
children.add(new Child("Child " + i));
}
Random random = new Random();
for (Child child : children) {
int index = random.nextInt(3);
teachers.get(index).addApple(child);
}
for (Teacher teacher : teachers) {
teacher.start();
}
}
static class Child {
private String name;
private int appleCount;
public Child(String name) {
this.name = name;
}
public String getName() {
return name;
}
public int getAppleCount() {
return appleCount;
}
public void addApple() {
appleCount++;
}
}
static class Teacher extends Thread {
private String name;
private List<Child> children = new ArrayList<>();
public Teacher(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void addApple(Child child) {
children.add(child);
}
@Override
public void run() {
for (Child child : children) {
System.out.println(getName() + " gives an apple to " + child.getName());
child.addApple();
}
}
}
}
```
在上面的代码中,我们创建了三个老师和 50 个小朋友,然后随机分配每个小朋友给其中的一个老师。接着,我们启动每个老师的线程,让他们发苹果给自己负责的小朋友。
当一个老师线程运行时,它会遍历自己负责的所有小朋友,并给他们发苹果。每个小朋友都有一个 `addApple()` 方法来增加自己的苹果数量。
这个示例代码只是一个基本的模拟,您可以根据自己的需求进行修改和扩展。
阅读全文