4.自定义一个类Demo,使其实现Runnable接口;在Demo类中覆写run()方法,在方法内编写一个for循环,循环体内打印:线程名称+循环次数;编写测试类Example04,在Example04类的main()方法中,创建一个Demo对象,利用Thread的构造方法创建两个线程对象,分别命名“排队队员”和“插队队员”,然后编写两个线程对象的start()方法,然后调用“插队队员”线程的join()方法。
时间: 2023-12-10 09:39:14 浏览: 66
Java中继承thread类与实现Runnable接口的比较
5星 · 资源好评率100%
以下是代码实现:
```java
class Demo implements Runnable {
@Override
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
}
public class Example04 {
public static void main(String[] args) throws InterruptedException {
Demo demo = new Demo();
Thread t1 = new Thread(demo, "排队队员");
Thread t2 = new Thread(demo, "插队队员");
t1.start();
t2.start();
t2.join();
System.out.println("主线程结束");
}
}
```
运行结果:
```
排队队员:1
排队队员:2
插队队员:1
插队队员:2
插队队员:3
插队队员:4
插队队员:5
排队队员:3
排队队员:4
排队队员:5
主线程结束
```
在上面的代码中,我们创建了一个类 Demo,实现了 Runnable 接口,并重写了 run() 方法。在 run() 方法中,我们编写了一个 for 循环,循环体内打印了线程名称和循环次数。
在 Example04 类中,我们创建了一个 Demo 对象并利用 Thread 的构造方法创建了两个线程对象:t1 和 t2。我们分别给这两个线程对象命名为“排队队员”和“插队队员”。
然后,我们调用这两个线程对象的 start() 方法,启动这两个线程。接着,我们调用“插队队员”线程的 join() 方法,让主线程等待“插队队员”线程执行完毕之后再继续执行。
最后,在主线程中打印“主线程结束”的消息,整个程序执行结束。
阅读全文