java编写小明上课时打瞌睡,被老师发现,老师惩罚他抄写100遍单词"HelloWorld",而且老师每发现一个同学,惩罚的次数和抄写的内容都不一样。恰好今天学习多线程,于是乎小明就找到了小王帮助他一起抄写单词。 请使用多线程模拟小明和小王一起完成抄单词的惩罚。 程序运行效果如下图:不要求轮流写,不要求平均分配抄写次数
时间: 2024-01-22 17:19:53 浏览: 166
以下是一个可能的 Java 实现,实现了两个线程,一个代表小明,另一个代表小王,它们共同完成了抄写单词的任务:
```java
public class Punishment implements Runnable {
private String name;
private int times;
private String content;
public Punishment(String name, int times, String content) {
this.name = name;
this.times = times;
this.content = content;
}
@Override
public void run() {
for (int i = 1; i <= times; i++) {
System.out.println(name + " is writing " + content + " for the " + i + "th time.");
}
}
public static void main(String[] args) {
Punishment ming = new Punishment("Xiao Ming", 100, "HelloWorld");
Punishment wang = new Punishment("Xiao Wang", 50, "HelloJava");
Thread t1 = new Thread(ming);
Thread t2 = new Thread(wang);
t1.start();
t2.start();
}
}
```
在这个例子中,Punishment 类实现了 Runnable 接口,代表了一个惩罚任务。它有三个属性:名称、次数和内容。run 方法实现了具体的惩罚过程,通过循环多次输出抄写单词的信息。main 方法创建了两个 Punishment 实例,代表小明和小王的惩罚任务,然后创建了两个线程并启动它们。
当程序运行时,会同时输出两个线程抄写单词的信息,因为它们是并发执行的。这样就模拟了小明和小王一起完成抄写单词的惩罚过程。
阅读全文