作家
登录

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

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

Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践

尤塞恩·圣利奥·博尔特 Usain St Leo Bolt ,牙买加短跑活动员,须眉100米、须眉200米以及须眉400米接力赛的世界记载坚进出,同时是以上三项赛事的持续三届奥运金牌得主。

应用 Bolts 可以将一个完全的操作拆分成多个子义务,这些子义务可以自由的拆分、组合和调换,每个义务作为全部义务链的一环可以运行在指定线程中,同时既能大年夜上行义务中获取义务结不雅,又可以向下行义务宣布当前义务的结不雅,而不必推敲线程之间的交互。

Bolts-Android Bolts 在 Android 下的实现 Bolts-ObjC Bolts 在 OC 下的实现 Bolts-Swift Bolts 在 Swift 下的实现

媒介

重要用来简化那些不指定运行线程的办法,默认在当前哨程去履行义务,应用 ThreadLocal 保存每个线程调用栈的深度,如不雅深度不跨越 15,则在当前哨程履行,不然代劳给 backgroud 履行。

应用 Thread + Handler 实现,线程调剂很不灵活,代码可读性差,不美不雅,扩大性差,缺点处理异常麻烦。

  1. String url = "http://www.baidu.com"
  2. Handler handler = new Handler(Looper.getMainLooper()); 
  3. new Thread(() -> { 
  4.     // 下载 
  5.     Bitmap bitmap = downloadBitmap(url); 
  6.     handler.post(() -> { 
  7.         // 更新 UI 
  8.         String json = updateUI(bitmap); 
  9.         new Thread(() -> { 
  10.             // 向存储写入UI状况 
  11.             saveUIState(json); 
  12.             // 保存成功后,提示 
  13.             handler.post(() -> toastMsg("save finish.")); 
  14.         }).start(); 
  15.     }); 
  16. }).start(); 

应用 RxJava 实现,线程调剂异常灵活,链式调用,代码清楚,扩大性好,有同一的异常处理机制,不过 Rx 是一个很强大年夜的看维如不雅只用来做线程调剂的话, Rx 就显得有点太重了。

  1. Observable.just(URL) 
  2.         // 下载 
  3.         .map(this::downloadBitmap) 
  4.         .subscribeOn(Schedulers.newThread()) 
  5.         // 更新UI 
  6.         .observeOn(AndroidSchedulers.mainThread()) 
  7.         .map(this::updateUI) 
  8.         // 存储 UI 状况 
  9.         .observeOn(Schedulers.io()) 
  10.         .map(this::saveUIState) 
  11.         // 显示提示 
  12.         .observeOn(AndroidSchedulers.mainThread()) 
  13.         .subscribe(rst -> toastMsg("save to " + rst), 
  14.                 // handle error 
  15.                 Throwable::printStackTrace); 

应用 bolts 实现,线程调剂灵活,链式调用,代码清楚,具有优胜的扩大性,具有同一的异常处理机制,固然没有 Rx 那么丰富的操作符,然则胜在类库异常异常小,只有 38 KB。

应用 whenAll 办法,履行多个义务,当全部义务履行完后,返回结不雅

 1/5    1 2 3 4 5 下一页 尾页

  推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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