您现在的位置是:课程教程文章
java executor框架的应用
2023-12-15 21:13课程教程文章 人已围观
-
并发编程之手写阻塞式线程安全队列Jav
并发编程之手写阻塞式线程安全队列Jav... -
【千锋】2020版JavaScript基础入门教程全集
【千锋】2020版JavaScript基础入门教程全集获取全套视频资料源码,请添加官方指定qq:2377443170 课程简介: 本课程主要针... -
Javascript日历案例丨丨WEB前端丨HTML入门丨
Javascript日历案例丨丨WEB前端丨HTML入门丨关注微信公众号平台:“CGWANG实训中心” 全球的CG爱好者都在这里,行业新闻齐... -
【Java核心】Java异常处理详解
【Java核心】Java异常处理详解加传智燕青老师wx: pbteach 领取配套代码,有问题向老师提问。 课程介绍 本课程...
我们知道为了实现对线程池的作用,executor对线程的管理采取了一定的措施,使用接口进行操作。所以我们会发现,其实executor框架是有许多不同的接口的,它们分别在不同的执行上发挥相应的作用。下面我们就executor框架组成、框架使用图和实例为大家进行展示。
1.executor框架组成
(1)工作任务:Runnable/Callable 接口
作任务就是Runnable/Callable接口的实现,可以被线程池执行
(2)执行机制:Executor接口、ExecutorService接口、ScheduledExecutorService接口
ThreadPoolExecutor 是最核心的线程池实现,用来执行被提交的任务
ScheduledThreadPoolExecutor 是任务调度的线程池实现,可以在给定的延迟后运行命令,或者定期执行命令(它比Timer更灵活)
ForkJoinPool是一个并发执行框架
(3)异步计算的结果:Future接口
实现Future接口的FutureTask类,代表异步计算的结果
2.Executor框架使用图
/* @param corePoolSize */ /* @param maximumPoolSize */ /* @param keepAliveTime 线程空闲时存活的有效时长 */ /* @param unit 时长单位 */ /* @param unit 时长单位 */ /* @param workQueue 等待执行的队列 */ /* maximumPoolSize是在workQueue队列满了之后才额外创建的线程数量 */ ThreadPoolExecutor tpe = new ThreadPoolExecutor(5, 10, 100, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(10)); /* 有返回值 */ Callable<String> callable = new Callable<String>() { public String call() throws Exception { try { Thread.sleep(5000); String a = "return String"; return a; } catch (Exception e) { e.printStackTrace(); return "exception"; } } }; Future<String> future = tpe.submit(callable); /* 获取返回值,这是一个同步阻塞式获取的方法 */ future.get(); /* 有返回值 */ FutureTask<String> futureTask = new FutureTask<String>(callable); futureTask.run(); /* 无返回值 */ Runnable runnable = new Runnable() { public void run() { try { Thread.sleep(5000); String a = "return String"; } catch (Exception e) { e.printStackTrace(); } } }; tpe.execute(runnable);
以上就是java中executor框架的应用,可以看出其中不同的接口,对于线程的一些作用,这就是executor框架用法的体验,即实现对线程池的管理。
课程教程:java executor框架的应用上一篇:java中ExecutorService有几种创建方法
下一篇:没有了