通过实现Runnable接口的形式创建线程,实现如下要求: 1.每隔3秒打印当前线程的名称和当前的时间戳,打印10次 2.设置线程名称为:测试线程 3.在测试方法中等待线程执行结束
时间: 2024-12-08 15:20:19 浏览: 13
在Java中,通过实现`Runnable`接口创建线程可以让你自定义线程的行为。下面是一个示例,它满足了你的所有需求:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class TestRunnable implements Runnable {
private String threadName = "测试线程";
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private int count = 0;
@Override
public void run() {
while (count < 10) {
Date currentTime = new Date();
String timestamp = sdf.format(currentTime);
System.out.println(threadName + ": 当前线程时间戳 - " + timestamp);
try {
Thread.sleep(3000); // 每隔3秒
} catch (InterruptedException e) {
e.printStackTrace();
}
count++;
}
System.out.println(threadName + ": 线程执行完毕");
}
public static void main(String[] args) {
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(new TestRunnable()); // 设置线程名称
try {
executor.shutdown();
executor.awaitTermination(5, TimeUnit.SECONDS); // 等待线程执行结束
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
```
在这个例子中,我们创建了一个`TestRunnable`类,实现了`Runnable`接口,并设置了线程名称为"测试线程"。在`run()`方法里,我们按照要求每隔3秒打印一次线程名和时间戳,总共循环10次。在`main()`方法中,我们使用`ExecutorService`创建并执行了一个`TestRunnable`实例,并在任务完成后等待线程结束。
阅读全文