Java模拟3个老师同时给10个小朋友发礼品,每个老师相当于一个线程。
时间: 2024-02-12 09:09:32 浏览: 17
下面是Java代码,实现3个老师同时给10个小朋友发礼品的过程:
```java
public class Teacher implements Runnable {
private String name;
private List<String> children;
public Teacher(String name, List<String> children) {
this.name = name;
this.children = children;
}
public void run() {
for (String child : children) {
System.out.println(name + " is giving a gift to " + child);
try {
Thread.sleep(1000); // 模拟发礼品的时间
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Main {
public static void main(String[] args) {
List<String> children = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
children.add("Child " + i);
}
Teacher teacher1 = new Teacher("Teacher A", children);
Teacher teacher2 = new Teacher("Teacher B", children);
Teacher teacher3 = new Teacher("Teacher C", children);
Thread thread1 = new Thread(teacher1);
Thread thread2 = new Thread(teacher2);
Thread thread3 = new Thread(teacher3);
thread1.start();
thread2.start();
thread3.start();
}
}
```
上面的代码中,我们定义了一个 `Teacher` 类,它实现了 `Runnable` 接口,表示它是一个线程。一个老师相当于一个线程,每个老师有一个名字和一堆小朋友名字的列表。在 `run` 方法中,老师会依次给每个小朋友发礼品,并且模拟发礼品的时间,暂停 1 秒钟。
在 `Main` 类中,我们创建了10个小朋友,然后创建 3 个老师,并将这些小朋友分配给这 3 个老师。然后我们创建 3 个线程,分别运行这 3 个老师,并且让它们同时发礼品。这样,我们就模拟了3个老师同时给10个小朋友发礼品的过程了。