1.该线程使用实现Runnable接口的写法; 2.程序该线程每隔0.5秒打印输出一次倒数数值(数值为上一次数值减1)。 输入格式: 键盘输入一个整数n(n>0) 输出格式: 若n<0,打印"输入数据有误"
时间: 2024-02-12 11:06:34 浏览: 89
好的,这是一个线程的实现,每隔0.5秒打印输出一次倒数数值,数值为上一次数值减1。在开始之前,请确保已经导入了java.util.concurrent.TimeUnit类。
以下是实现该线程的Java代码:
```java
import java.util.concurrent.TimeUnit;
public class CountDownThread implements Runnable {
private int count;
public CountDownThread(int count) {
this.count = count;
}
@Override
public void run() {
while (count > 0) {
System.out.println(count);
count--;
try {
TimeUnit.MILLISECONDS.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if (count == 0) {
System.out.println("倒计时结束!");
} else {
System.out.println("输入数据有误");
}
}
}
```
在主方法中,我们可以通过以下方式启动线程:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int count = scanner.nextInt();
if (count <= 0) {
System.out.println("输入数据有误");
return;
}
CountDownThread countDownThread = new CountDownThread(count);
Thread thread = new Thread(countDownThread);
thread.start();
}
}
```
当用户输入的数值大于0时,将创建CountDownThread对象并使用它创建一个新线程。该线程将在后台计时并打印输出倒数数值。当倒数数值为0时,输出"倒计时结束!"。如果用户输入的数值小于等于0,将直接输出"输入数据有误"。
阅读全文