executorservice用法详解

executorservice用法详解

ID:6072729

大小:75.00 KB

页数:8页

时间:2018-01-02

executorservice用法详解_第1页
executorservice用法详解_第2页
executorservice用法详解_第3页
executorservice用法详解_第4页
executorservice用法详解_第5页
资源描述:

《executorservice用法详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ExecutorService用法详解接口java.util.concurrent.ExecutorService表述了异步执行的机制,并且可以让任务在后台执行。壹個ExecutorService实例因此特别像壹個线程池。事实上,在java.util.concurrent包中的ExecutorService的实现就是壹個线程池的实现。ExecutorService样例这里有壹個简单的使用Java实现的ExectorService样例:ExecutorServiceexecutorService=Executors.newFixedThreadPool(

2、10);executorService.execute(newRunnable(){publicvoidrun(){System.out.println("Asynchronoustask");}});executorService.shutdown();首先使用newFixedThreadPool()工厂方法创建壹個ExecutorService,上述代码创建了壹個可以容纳10個线程任务的线程池。其次,向execute()方法中传递壹個异步的Runnable接口的实现,这样做会让ExecutorService中的某個线程执行这個Runnable线程。

3、任务的委托(TaskDelegation)下方展示了一个线程的把任务委托异步执行的ExecutorService的示意图。壹旦线程把任务委托给ExecutorService,该线程就会继续执行与运行任务无关的其它任务。ExecutorService的实现由于ExecutorService只是壹個接口,你壹量需要使用它,那麽就需要提供壹個该接口的实现。ExecutorService接口在java.util.concurrent包中有如下实现类:ThreadPoolExecutorScheduledThreadPoolExecutor创建壹個Executo

4、rService你可以根据自己的需要来创建壹個ExecutorService,也可以使用Executors工厂方法来创建壹個ExecutorService实例。这里有几個创建ExecutorService的例子:ExecutorServiceexecutorService1=Executors.newSingleThreadExecutor();ExecutorServiceexecutorService2=Executors.newFixedThreadPool(10);ExecutorServiceexecutorService3=Executor

5、s.newScheduledThreadPool(10);ExecutorService使用方法这里有几种不同的方式让你将任务委托给壹個ExecutorService:execute(Runnable)submit(Runnable)submit(Callable)invokeAny(...)invokeAll(...)我会在接下来的内容里把每個方法都看壹遍。execute(Runnable)方法execute(Runnable)接收壹個java.lang.Runnable对象作为参数,并且以异步的方式执行它。如下是壹個使用ExecutorServic

6、e执行Runnable的例子:ExecutorServiceexecutorService=Executors.newSingleThreadExecutor();executorService.execute(newRunnable(){publicvoidrun(){System.out.println("Asynchronoustask");}});executorService.shutdown();使用这种方式没有办法获取执行Runnable之后的结果,如果你希望获取运行之后的返回值,就必须使用接收Callable参数的execute()方法

7、,后者将会在下文中提到。submit(Runnable)方法submit(Runnable)同样接收壹個Runnable的实现作为参数,但是会返回壹個Future对象。这個Future对象可以用于判断Runnable是否结束执行。如下是壹個ExecutorService的submit()方法的例子:Futurefuture=executorService.submit(newRunnable(){publicvoidrun(){System.out.println("Asynchronoustask");}});//如果任务结束执行则返回nullSys

8、tem.out.println("future.get()="+future.get());s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。