资讯专栏INFORMATION COLUMN

java并发编程学习之线程池-Executor和ExecutorService(一)

liuchengxu / 1064人阅读

摘要:接口用于提交任务接口继承了接口设置线程的状态,还没执行的线程会被中断设置线程的状态,尝试停止正在进行的线程当调用或方法后返回为当调用方法后,并且所有提交的任务完成后返回为当调用方法后,成功停止后返回为当前线程阻塞,直到线程执行完时间到被中断

Executor接口
void execute(Runnable command)//用于提交command任务
ExecutorService接口

继承了Executor接口

//设置线程的状态,还没执行的线程会被中断
void shutdown();
//设置线程的状态,尝试停止正在进行的线程
List shutdownNow();
//当调用shutdown()或shutdownNow()方法后返回为true
boolean isShutdown();
//当调用shutdown()方法后,并且所有提交的任务完成后返回为true
//当调用shutdownNow()方法后,成功停止后返回为true;
boolean isTerminated();
//当前线程阻塞,直到线程执行完、时间到、被中断
boolean awaitTermination(long timeout, TimeUnit unit)
    throws InterruptedException;
//提交一个Callable任务
 Future submit(Callable task);
//提交一个Runnable任务,因为Runnable没有返回指,所以第二个参数是用来返回值
 Future submit(Runnable task, T result);
//提交一个Runnable任务
Future submit(Runnable task);
//执行所有任务
 List> invokeAll(Collection> tasks)
    throws InterruptedException;
//执行所有任务,有过期时间
 List> invokeAll(Collection> tasks,
                              long timeout, TimeUnit unit)
    throws InterruptedException;
//有一个任务结束就可以返回
 T invokeAny(Collection> tasks,
                long timeout, TimeUnit unit)
    throws InterruptedException, ExecutionException, TimeoutException;
//有一个任务结束就可以返回,有过期时间
 T invokeAny(Collection> tasks,
                    long timeout, TimeUnit unit)
        throws InterruptedException, ExecutionException, TimeoutException;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75686.html

相关文章

  • java并发编程习之线程-预定义线程(四)

    摘要:系统预定了几个线程池,不过建议手动创建,以防止错误创建消耗资源,比如创建太多线程或者固定线程数量,无界队列固定线程数量,数量为,无界队列,会按顺序执行不限制线程数量,使用队列,使用于短任务基于用于周期性执行任务示例第一个是,第二个是第一 系统预定了几个线程池,不过建议手动创建,以防止错误创建消耗资源,比如创建太多线程或者OOM FixedThreadPool 固定线程数量,无界队列 p...

    suemi 评论0 收藏0
  • java并发系列 - 第19天:JUC中的Executor框架详解1,全面掌握java并发相关技术

    摘要:有三种状态运行关闭终止。类类,提供了一系列工厂方法用于创建线程池,返回的线程池都实现了接口。线程池的大小一旦达到最大值就会保持不变,在提交新任务,任务将会进入等待队列中等待。此线程池支持定时以及周期性执行任务的需求。 这是java高并发系列第19篇文章。 本文主要内容 介绍Executor框架相关内容 介绍Executor 介绍ExecutorService 介绍线程池ThreadP...

    icattlecoder 评论0 收藏0
  • java并发编程习之线程-AbstractExecutorService(二)

    摘要:抽象类,实现了的接口。将任务封装成提交任务主要方法在任务是否超时超时时间任务书用于存放结果的,先完成的放前面。 AbstractExecutorService抽象类,实现了ExecutorService的接口。 newTaskFor 将任务封装成FutureTask protected RunnableFuture newTaskFor(Runnable runnable, T va...

    Jokcy 评论0 收藏0
  • 初读《Java并发编程的艺术》-第十章:Executor框架 -10.1 Executor框架简介

    摘要:线程的启动与销毁都与本地线程同步。操作系统会调度所有线程并将它们分配给可用的。框架的成员主要成员线程池接口接口接口以及工具类。创建单个线程的接口与其实现类用于表示异步计算的结果。参考书籍并发编程的艺术方腾飞魏鹏程晓明著 在java中,直接使用线程来异步的执行任务,线程的每次创建与销毁需要一定的计算机资源开销。每个任务创建一个线程的话,当任务数量多的时候,则对应的创建销毁开销会消耗大量...

    aisuhua 评论0 收藏0
  • java并发系列 - 第20天:JUC中的Executor框架详解2

    摘要:示例执行一批任务,然后消费执行结果代码如下跟着阿里学并发,微信公众号输出代码中传入了一批任务进行处理,最终将所有处理完成的按任务完成的先后顺序传递给进行消费了。 这是java高并发系列第20篇文章。 本文内容 ExecutorCompletionService出现的背景 介绍CompletionService接口及常用的方法 介绍ExecutorCompletionService类及...

    msup 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<