zoukankan      html  css  js  c++  java
  • concurrency基础

    Runnable 一个执行任务,没有返回值,也不能抛出受检查异常

    Callable 一个执行任务有返回值,也能抛出受检查异常

    Future 表示执行任务的生命周期,任务的生命周期为:创建,提交,开始,完成。实现类:FutureTask

    Executor 只有一个 void execute(Runnable command) 方法,没有对其自身生命周期的方法

    ExecutorService 扩展了Executor,并加入了对线程池(ExecutorService本身)生命周期的管理,ExecutorService的生命周期有3种状态:运行,关闭和已终止。其submit方法可以返回执行任务的Future。实现类:ThreadPoolExecutor

    CompletionService 融合了Executor和BlockingQueue的功能,使用Executor执行任务,任务执行完成后把该任务的计算结果放到BlockingQueue中,可以调用take或poll方法获取BlockingQueue中的结果

    Timer 类执行定时任务时只会创建一个线程,有以下缺点:

    1. 当某个TimerTask执行时间较长时(假设超过了几个执行周期),后面的TimerTask有可能快速连续调用几次(由前面超过的几个执行周期决定),或者被抛弃不再调用(取决于固定速率和固定延时)

    2. Timer不捕获异常,当某个TimerTask抛出未检查异常时,整个Timer将被取消

    另外,Timer支持基于绝对时间而不是相对时间的调度机制,因此对系统时钟比较敏感

    ScheduledThreadPoolExecutor 基于相对时间的调度机制,而且是线程池的方式执行,不存在上述缺陷

  • 相关阅读:
    习题三 答案
    习题二 答案
    Python开发【第三篇】:Python基本数据类型
    习题四 答案
    第一个python程序-判断登陆用户名和密码是否正确
    BFPRT算法 查找第k小的数
    设计模式----单例模式
    设计模式----原型模式
    非本地跳转
    链接器如何使用静态库解析引用
  • 原文地址:https://www.cnblogs.com/drizzlewithwind/p/6395946.html
Copyright © 2011-2022 走看看