参考:
http://www.jz123.cn/text/0821440.html
package com.pure;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
public class TestThreadPool {
public static void main(String args[]) throws InterruptedException {
ExecutorService exec = Executors.newFixedThreadPool(10, new MyThreadFactoy());
for (int index = 0; index < 10; index++) {
Runnable run = new Runnable() {
public void run() {
long time = (long) (Math.random() * 1000);
System.out.println("Sleeping " + time + "ms" + "/" + Thread.currentThread().getName());
try {
Thread.sleep(time);
} catch (InterruptedException e) {
}
}
};
exec.execute(run);
}
// must shutdown
exec.shutdown();
}
}
class MyThreadFactoy implements ThreadFactory {
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
return t;
}
}
主要就是这个类的几个方法。
类 Executors
此类中提供的一些方法有:
1.1 public static ExecutorService newCachedThreadPool()
创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。
1.2 public static ExecutorService newFixedThreadPool(int nThreads)
创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。
1.3 public static ExecutorService newSingleThreadExecutor()
创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。
这三个方法都可以配合接口ThreadFactory的实例一起使用。并且返回一个ExecutorService接口的实例。
分享到:
相关推荐
下面将详细讲解`ExecutorService`的使用方法。 1. **线程池创建** `ExecutorService`的实例通常通过`Executors`工厂类来创建。在示例中,使用`Executors.newFixedThreadPool(int nThreads)`创建了一个固定大小的...
在 Spring Boot 中使用 Java 线程池 ExecutorService 的讲解 Spring Boot 作为一个流行的 Java 框架,提供了许多便捷的功能来帮助开发者快速构建应用程序。其中之一就是使用 Java 线程池 ExecutorService 来管理...
下面将深入解析`ExecutorService`的使用及其相关接口和类。 1. **ExecutorService接口**: `ExecutorService`继承自`Executor`接口,扩展了更多的功能。它的主要方法包括: - `execute(Runnable task)`:用于执行...
以下是一个简单的ExecutorService使用示例: ```java ExecutorService executor = Executors.newFixedThreadPool(5); for (int i = 1; i ; i++) { final int taskID = i; executor.execute(() -> { for (int j =...
在Java多线程编程中,`ExecutorService`是线程池的核心接口,它提供了一种管理线程的方式,包括创建线程、调度线程执行以及控制线程的生命周期。`ExecutorService`通过`execute()`和`submit()`这两个方法来提交任务...
首先,我们来看ExecutorService的使用。在示例中,创建了一个固定大小的线程池(newFixedThreadPool(4)),然后将四个任务A、B、C、D分别提交到线程池执行。这些任务被包装为Future对象并存储在一个列表中。在遍历...
ExecutorService方法案例文件.zip
接口 java.util.concurrent.ExecutorService 表述了异步执行的机制,并且可以让任务在后台执行。壹個 ExecutorService 实例因此特别像壹個线程池。事实上,在 java.util.concurrent 包中的 ExecutorService 的实现...
综上所述,ExecutorService线程池是Java并发编程中的重要工具,通过合理使用,我们可以有效地管理线程资源,提高程序的并发能力和稳定性。在项目开发中,了解和掌握线程池的使用和配置,对于提升系统性能和可维护性...
通常,我们不会直接使用`Executor`,而是使用它的子接口`ExecutorService`,因为`ExecutorService`提供了更多的功能,如任务的提交、管理和关闭线程池。 2. **Executors** `Executors`是`java.util.concurrent`包...
### ExecutorService使用 ExecutorService是Java中用于管理线程池的接口。它可以使用单个的线程池来管理整个应用程序中的线程,也可以每个服务用一个线程池,这有助于更好地管理和配置资源。 ### Spring AOP ...
至于`Java_并发编程培训(阿里巴巴).ppt`这个文件,很可能是阿里巴巴内部关于Java并发编程的一份培训材料,涵盖了更广泛的并发编程概念和实践,包括线程池的使用、并发工具类、锁机制、原子性操作、并发集合等。...
4. **Future和Callable**:Future接口代表异步计算的结果,Callable接口可以返回一个结果并抛出异常,它们结合ExecutorService使用,可以在执行任务后获取结果,适合于需要返回结果的异步操作。 5. **锁机制**:...
为了解决同步和性能的问题,我们使用ExecutorService创建了一个单线程的线程池(通过Executors.newSingleThreadExecutor())。这样,所有提交到线程池的任务都会按照提交的顺序在单个线程中依次执行,从而确保对临界...
Java 使用 ExecutorService 来停止线程服务 Java 中的 ExecutorService 是一个非常强大的线程池管理工具,它提供了多种方式来停止线程服务。今天,我们将详细介绍如何使用 ExecutorService 来停止线程服务。 首先...
- **实现Callable接口**:返回一个Future对象,可以获取线程执行结果,通常配合ExecutorService使用。 3. **线程状态** - **新建(New)**:线程被创建但尚未启动。 - **可运行(Runnable)**:线程已启动,等待...
运用JAVA的concurrent.ExecutorService线程池实现socket的TCP和UDP连接
ExecutorService 是 Java 中用于管理和控制线程执行的核心接口,它是 java.util.concurrent 包的一部分。ExecutorService 扩展了 ...熟练掌握 ExecutorService 的使用能够帮助开发者编写出高效、可控的并发代码。
NULL 博文链接:https://x125858805.iteye.com/blog/2191873
下面将详细介绍如何使用 `ExecutorService` 实现简单的多线程示例。 1. **ExecutorService**:ExecutorService 是 Executor 接口的一个实现,提供了更强大的功能,如线程池管理和任务调度。通过它,你可以提交任务...