美文网首页
慕课网高并发实战(八)- J.U.C-Future

慕课网高并发实战(八)- J.U.C-Future

作者: 景行lau | 来源:发表于2018-03-30 17:04 被阅读0次

    传统线程两种实现方式的确定无法获取线程结果

    && Callable与Runnable接口对比:

    Callable是一个泛型

    && Future 接口

    future :可以查询任务是否取消,取消任务,查询是否完成,获取结果

    future可以得到其他线程执行结果的返回值

    && FutureTask 类

    父类是:Runnable, future

    可以像runnable作为线程执行,也可以像future返回线程执行的结果

    7.3 Fork/Join 框架

    将大任务分割成若干个小任务,最后汇总

    工作窃取算法

    工作窃取算法是指:某个线程从其他队列里窃取任务来执行

    双端队列: 被窃取任务的线程从双端队列的头部拿任务执行

    窃取任务的线程从双端队列的尾部拿任务执行

    充分利用了线程进行并行计算

    存在竞争:消耗了系统资源,创建了线程,多个队列

    局限:

    1 任务只能使用fork/join 实现同步机制

    2  任务不应该执行io

    3 任务不能抛出检查异常

    ForkJoinPool :负责实现,工作窃取算法,管理工作线程,已经任务的状态

    ForkJoinTask:  负责提供Join Fork 执行的机制

    8.4 BlockingQueue


    && ArrayBlockingQueue 有界的阻塞队列,内部实现是数组 先进先出

    && DelayQueue   元素需要排序  定时关闭连接,缓存对象 超时处理

    && LinkedBlockingQueue 内部实现是链表 先进先出

    && PriorityBlockingQueue 带优先级的队列,没有边界 ,有排序规则  插入的对象必须实现Comparable接口

    && SynchronousQueue   只存储一个对象

    相关文章

      网友评论

          本文标题:慕课网高并发实战(八)- J.U.C-Future

          本文链接:https://www.haomeiwen.com/subject/kazvcftx.html