作家
登录

「Android」Bolts-更简单的完成线程调度和任务管理

作者: 来源: 2017-11-22 14:47:18 阅读 我要评论

 Task> whenAny(Collection> tasks) 
  1. public static Task whenAll(Collection> tasks)  
  2. public static Task> whenAllResult(final Collection> tasks) 

应用 call 办法,履行一个义务,同时创建 Task

  1. public static Task call(final Callable callable, Executor executor,  
  2. final CancellationToken ct) 

链接子义务

应用 continueWith 办法,链接一个子义务,如不雅前行义务已经履行完成,则急速履行当前义务,不然参加队列中,等待。

  1. public <TContinuationResult> Task<TContinuationResult> continueWith( 
  2.       final Continuation<TResult, TContinuationResult> continuation, final Executor executor, 
  3.       final CancellationToken ct) 

应用 continueWithTask 办法,在当前义务之后链接另一个义务链,这种做法是为了知足那种将部分义务组合在一路分别出去,作为公共义务的场景,他接收将别的一个完全自力的义务链,追加在当前履行的义务后面。

  1. public <TContinuationResult> Task<TContinuationResult> continueWithTask( 
  2.       final Continuation<TResult, Task<TContinuationResult>> continuation, final Executor executor, 
  3.       final CancellationToken ct) 

应用 continueWhile 办法链接子义务,与 continueWith 差别在于,他有一个 predicate 表达式,只有当表达式成立时,才会追加子义务,如许做是在履行义务前可以做一个拦截操作,也是为了不破环链式调用的┞符体风格。

  1. public Task<Void> continueWhile(final Callable<Boolean> predicate, 
  2.       final Continuation<Void, Task<Void>> continuation, final Executor executor, 
  3.       final CancellationToken ct) 

应用>

  • public <TContinuationResult> Task<TContinuationResult> onSuccess( 
  •       final Continuation<TResult, TContinuationResult> continuation, Executor executor, 
  •       final CancellationToken ct) 
  • 撤消义务

    1. CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); 
    2. CancellationToken token =   cancellationTokenSource.getToken(); 
    3. Task.call((Callable<String>) () -> null
    4.         Task.BACKGROUND_EXECUTOR, 
    5.         token); 
    6. // 撤消义务 
    7. cancellationTokenSource.cancel(); 

    关于异常的处理,全部机制下来,每个义务作为一个自力的单位,异常会被同一捕获,是以不必针对义务中的办法进行零丁的处理。

    如不雅应用了 continueWith 链接义务,那么当前义务的的异常信息,将会保存在当前 Task 中鄙人行义务中进行处理,下行义务也可以不处理这个异常,直接履行义务,那么这个异常就到这里停止了,不会再向下传递,也就是说,只有下行义务才知道当前义务的结不雅,不管是成功照样异常。

    当然了,如不雅义务之间有接洽关系,因为上行义务的异常极大年夜可能造成当前义务的异常,那么当前义务异常的信息,又会向下传递,然则上行义务的异常就到这里为止了。

    复竽暌姑性


      推荐阅读

      外卖平台盯上“无人配送” 规模化落地待解

    Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践美团外卖此前也推出了“O2O及时配送智能调剂体系”。据其颁布的数据显示,上线该体系后,配送员单均配送时长>>>详细阅读


    本文标题:「Android」Bolts-更简单的完成线程调度和任务管理

    地址:http://www.17bianji.com/lsqh/39148.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)