一、Executor框架
Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为:
并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执行,Executor.execute(Runnalbe)。Executor在执行时使用内部的线程池完成操作。
二、创建线程池
2.1、Executors类,提供了一系列工厂方法用于创先线程池,返回的线程池都实现了ExecutorService接口。
2.1.1、创建固定数目线程的线程池。
public static ExecutorService
newFixedThreadPool(
int nThreads)
2.1.2创建一个可缓存的线程池,调用execute 将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。
public static ExecutorService
newCachedThreadPool()
2.1.3、创建一个单线程化的Executor。
public static ExecutorService
newSingleThreadExecutor()
2.1.4、创建一个支持定时及周期性的任务执行的线程池,多数情况下可用来替代Timer类。
public static ScheduledExecutorService
newScheduledThreadPool(
int corePoolSize)
使用newFixedThreadPool(int intThreads)方法创建一个ExecutorService, 创建可以容纳10个线程任务
ExecutorService executorService =
Executors.newFixedThreadPool(10);
向execute(Runnable runnable)方法中传递一个异步的Runnable对象, ExecutorService 中某个线程会执行这个runnable线程
executorService.execute(
new Runnable() {
public void run() {
System.
out.println(
"Asynchronous task");
}
});
executorService.shutdown();
任务的委托(Task Delegation)
创建线程池
ExecutorService executorService1 = Executors
.newSingleThreadExecutor()
ExecutorService executorService2 = Executors
.newFixedThreadPool(
10)
ExecutorService executorService3 = Executors
.newScheduledThreadPool(
10)
转载请注明原文地址: https://ju.6miu.com/read-675360.html