如何利用线程实现并行
在Java开发中,线程池是非常重要的工具,可以实现线程的并行执行。本文将探讨线程池的使用,主要介绍可缓存线程池、定长线程池、支持定时及周期性任务执行的线程池以及单线程化的线程池。
可缓存线程池
第一步是创建一个可缓存线程池,通过以下代码创建10个线程,并依次输出线程的序号:
```java
ExecutorService executor ();
for (int i 0; i < 10; i ) {
final int threadNum i;
executor.execute(() -> {
("Thread: " threadNum);
});
}
();
```
定长线程池
第二步是创建一个固定长度的线程池,通过以下代码指定长度为3,在程序启动后会依次创建3个线程:
```java
ExecutorService executor (3);
for (int i 0; i < 3; i ) {
final int threadNum i;
executor.execute(() -> {
("Thread: " threadNum);
});
}
();
```
定时及周期性任务执行的线程池
第三步是创建一个定时及周期性任务执行的线程池。下面是延迟执行示例代码:
```java
ScheduledExecutorService executor (1);
(() -> {
("Delayed task");
}, 5, );
();
```
定时周期性任务的线程池
第四步是创建一个定时周期性任务执行的线程池。下面的代码块将延迟1秒后,每3秒执行一次:
```java
ScheduledExecutorService executor (1);
(() -> {
("Periodic task");
}, 1, 3, );
();
```
单线程化的线程池
第五步是创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务。代码如下所示:
```java
ExecutorService executor ();
for (int i 0; i < 5; i ) {
final int threadNum i;
executor.execute(() -> {
("Thread: " threadNum);
});
}
();
```
通过以上的介绍与示例代码,我们可以灵活地利用不同类型的线程池实现并行执行任务,提高程序的运行效率和性能。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。