如何创建n个控制台线程并设置进入线程后进行动作前的休眠时间
时间: 2024-10-26 20:16:27 浏览: 14
Pool_Thread.rar_C 线程池_thread pool_多线程 队列_控制台多线程_线程池 队列
创建n个控制台线程并在每个线程开始执行前设置特定的休眠时间,可以使用Java的Thread类、Runnable接口和Sleep()方法来完成。以下是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class ConsoleThreadExample {
private static final int THREAD_COUNT = 5; // 指定线程数量
private static final long SLEEP_TIME_MILLIS = 2000; // 每个线程的休眠时间
public static void main(String[] args) {
List<Thread> threads = new ArrayList<>();
for (int i = 0; i < THREAD_COUNT; i++) {
Runnable worker = new ThreadWorker(i + 1); // 定义一个任务执行者
threads.add(new Thread(worker)); // 创建线程
threads.get(i).setName("Thread " + (i+1)); // 设置线程名称
try {
// 在线程启动之前让它休眠指定的时间
threads.get(i).sleep(SLEEP_TIME_MILLIS);
} catch (InterruptedException e) {
e.printStackTrace();
}
threads.get(i).start(); // 启动线程
}
// 等待所有线程执行完毕
for (Thread thread : threads) {
try {
thread.join(); // 让主线程等待线程结束
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("All threads finished.");
}
static class ThreadWorker implements Runnable {
private int id;
public ThreadWorker(int id) {
this.id = id;
}
@Override
public void run() {
System.out.println("Thread " + id + " is running after a sleep of " + SLEEP_TIME_MILLIS + "ms.");
// 在这里添加你需要线程执行的具体操作
}
}
}
```
在这个例子中,`ThreadWorker`实现了Runnable接口,每个新线程会实例化这个类的一个新对象。在`main`函数中,我们为每个线程设置了不同的休眠时间和名字,并在启动线程之前调用了`sleep()`方法。
阅读全文