写一个500毫秒执行一次的3个线程的线程池java代码
时间: 2023-07-13 12:28:33 浏览: 174
以下是一个基于Java Executor框架的线程池示例代码,其中创建了三个线程并且每个线程都会在500毫秒后执行一次:
```java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ThreadPoolExample {
public static void main(String[] args) {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(3);
Runnable task1 = () -> {
// 执行任务1
System.out.println("Task 1 executed at " + System.nanoTime());
};
Runnable task2 = () -> {
// 执行任务2
System.out.println("Task 2 executed at " + System.nanoTime());
};
Runnable task3 = () -> {
// 执行任务3
System.out.println("Task 3 executed at " + System.nanoTime());
};
executor.scheduleAtFixedRate(task1, 0, 500, TimeUnit.MILLISECONDS);
executor.scheduleAtFixedRate(task2, 0, 500, TimeUnit.MILLISECONDS);
executor.scheduleAtFixedRate(task3, 0, 500, TimeUnit.MILLISECONDS);
}
}
```
在上面的代码中,我们使用 `Executors.newScheduledThreadPool(3)` 创建了一个带有三个线程的线程池。然后,我们创建了三个不同的 `Runnable` 任务,并使用 `executor.scheduleAtFixedRate()` 方法将它们提交到线程池中。
`scheduleAtFixedRate()` 方法的第一个参数是要执行的任务,第二个参数是任务第一次执行的延迟时间,第三个参数是两次执行之间的时间间隔。在本例中,我们将每个任务的延迟时间设置为0,因此它们都将在500毫秒后开始执行,然后每隔500毫秒执行一次。
阅读全文