1) 自定义一个类Demo,使其继承Thread类。 2) 在Demo类中重写run()方法,在run()方法内编写一个for循环,循环体内打印:“Demo:”+当前循环次数。 3) 编写测试类Example01,在Example01类的main()方法中,创建一个Demo对象,并执行其 start()方法,接着编写一个for循环,循环体内打印:“main:”+当前循环次数。
时间: 2023-05-12 14:06:46 浏览: 129
以下是代码实现:
Demo类:
```java
public class Demo extends Thread {
@Override
public void run() {
for (int i = 1; i <= 10; i++) {
System.out.println("Demo: " + i);
}
}
}
```
Example01类:
```java
public class Example01 {
public static void main(String[] args) {
Demo demo = new Demo();
demo.start();
for (int i = 1; i <= 10; i++) {
System.out.println("main: " + i);
}
}
}
```
输出结果:
```
Demo: 1
main: 1
Demo: 2
main: 2
Demo: 3
main: 3
Demo: 4
main: 4
Demo: 5
main: 5
Demo: 6
main: 6
Demo: 7
main: 7
Demo: 8
main: 8
Demo: 9
main: 9
Demo: 10
main: 10
```
相关问题
自定义一个类Demo2,使其实现Runnable接口。
好的,下面是一个实现 Runnable 接口的自定义类 Demo2 的示例代码:
```php
class Demo2 implements Runnable {
public function run() {
for ($i = 1; $i <= 10; $i++) {
echo '线程执行中:' . $i . "\n";
sleep(1);
}
}
}
```
在上面的代码中,我们定义了一个名为 Demo2 的类,并实现了 Runnable 接口。Runnable 接口是一个标准接口,它包含一个 run() 方法,该方法用于定义线程执行的逻辑。在 Demo2 类中,我们重写了 run() 方法,并添加了一个简单的循环,用于输出线程执行的计数器值。在每次循环中,线程会休眠一秒钟,以便我们观察线程的执行情况。
当我们想要创建一个新线程时,可以通过实例化 Demo2 类并将其作为参数传递给 Thread 类的构造函数。例如:
```php
$demo2 = new Demo2();
$thread = new Thread($demo2);
$thread->start();
```
在上面的代码中,我们首先实例化 Demo2 类并将其赋值给 $demo2 变量,然后将 $demo2 变量作为参数传递给 Thread 类的构造函数。最后,我们启动新线程并开始执行 run() 方法。
1、自定义一个类Demo,使其实现Runnable接口;在Demo类中重写run()方法,在方法内编写一个for循环,循环体内打印:线程名称+循环次数;编写测试类Example01,在Example01类的main()方法中,创建一个Demo对象,利用Thread的构造方法创建三个线程对象并命名,使用setPriority()方法将其中两个线程的优先级设为最大和最小,最后开启三个线程的start()方法。
下面是示例代码:
```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 Example01 {
public static void main(String[] args) {
Demo demo = new Demo();
Thread t1 = new Thread(demo, "Thread-1");
Thread t2 = new Thread(demo, "Thread-2");
Thread t3 = new Thread(demo, "Thread-3");
t1.setPriority(Thread.MAX_PRIORITY);
t2.setPriority(Thread.MIN_PRIORITY);
t1.start();
t2.start();
t3.start();
}
}
```
输出结果:
```
Thread-1: 1
Thread-2: 1
Thread-1: 2
Thread-2: 2
Thread-1: 3
Thread-2: 3
Thread-1: 4
Thread-2: 4
Thread-1: 5
Thread-2: 5
Thread-3: 1
Thread-3: 2
Thread-3: 3
Thread-3: 4
Thread-3: 5
```
解释:在Demo类中重写run()方法,该方法是线程要执行的任务;在Example01类的main()方法中,创建一个Demo对象,并使用Thread类的构造方法创建了三个线程对象,并分别命名为"Thread-1"、"Thread-2"、"Thread-3";使用setPriority()方法将其中两个线程的优先级设为最大和最小,最后开启三个线程的start()方法,使三个线程同时执行任务。输出结果表明三个线程均执行了任务,但是"Thread-1"和"Thread-2"的输出顺序是不确定的,因为优先级高并不一定意味着一定先执行完。