<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      安卓筆記俠

      專注安卓開發

      導航

      Rxjava學習(三線程調度器Scheduler)

      我們知道,RxJava最主要的特點就是異步操作,它的異步操作就是用Scheduler來指定Observable和Subscriber所運行的線程,在默認情況下,即在不指定線程的情況下,RxJava遵循的是線程不變的原則,即:在哪個線程生產事件,就在哪個線程消費事件

       

      Schedulers線程調度器

       

      我們來看一下Schedulers的分類:

      (1)Schedulers.immediate():默認的Scheduler。即在哪個線程生產事件,就在哪個線程消費事件

      (2)Schedulers.newThread():總是啟用新線程,并在新線程執行操作。

      (3)Schedulers.io(): I/O 操作(讀寫文件、讀寫數據庫、網絡信息交互等)所使用的Scheduler。行為模式和newThread()差不多,區別在于io()的內部實現是是用一個無數量上限的線程池,可以重用空閑的線程,因此多數情況下 io() 比 newThread() 更有效率。不要把計算工作放在 io() 中,可以避免創建不必要的線程。

      (4)Schedulers.computation(): 計算所使用的Scheduler。這個計算指的是 CPU 密集型計算,即不會被I/O等操作限制性能的操作,例如圖形的計算。這個Scheduler使用的固定的線程池,大小為 CPU 核數。不要把 I/O 操作放在 computation()
      中,否則I/O操作的等待時間會浪費CPU。

      (5)另外,RxAndroid 還有一個專用的 AndroidSchedulers.mainThread(),它指定的操作將在 Android 主線程運行。

       1 Observable.create(new Observable.OnSubscribe<Integer>(){
       2             @Override
       3             public void call(Subscriber<? super Integer> subscriber) {
       4                 //后臺線程取數據
       5             }
       6         }).subscribeOn(Schedulers.io()) //指定事件產生的線程,Observable的方法所在的線程
       7           .observeOn(AndroidSchedulers.mainThread()) //指定事件消費的線程,即Subscriber所運行在的線程
       8           .subscribe(new Action1<Integer>() {
       9               @Override
      10               public void call(Integer integer) {
      11                  //主線程顯示數據
      12               }
      13           });

      如何實現線程的多次控制呢?我們來看一下下面的代碼

       1 Observable.just(R.mipmap.ic_launcher).subscribeOn(Schedulers.io())//指定Observable的操作運行在io()中
       2                 .observeOn(Schedulers.newThread())//指定map運行于newThread()中
       3                 .map(new Func1<Integer, Drawable>() {
       4                     @Override
       5                     public Drawable call(Integer integer) {
       6                         return getResources().getDrawable(integer);
       7                     }
       8                 }).observeOn(AndroidSchedulers.mainThread())//指定Subscriber的代碼運行在主線程
       9                 .subscribe(new Action1<Drawable>() {
      10  
      11                     @Override
      12                     public void call(Drawable drawable) {
      13                         iv_iamgeview.setImageDrawable(drawable);
      14                     }
      15                 });

       

      posted on 2018-05-05 22:11  安卓筆記俠  閱讀(2068)  評論(1)    收藏  舉報

      主站蜘蛛池模板: 亚洲国产成人精品女久久| 亚洲午夜福利精品无码不卡| 新营市| 四虎永久免费很黄的视频| 国产中文字幕精品免费| 人妻内射一区二区在线视频| 国产人妻精品午夜福利免费| 日韩一欧美内射在线观看| 九九热在线观看免费视频| 国产精品中文字幕自拍| 国产永久免费高清在线| 国产亚洲一二三区精品| 亚洲女人天堂成人av在线| 免费的特黄特色大片| 精品 无码 国产观看| 亚洲av熟女国产一二三| 免费又黄又爽又猛的毛片| 亚洲国产午夜福利精品| 久久午夜色播影院| 日韩精品中文字一区二区| 成人av午夜在线观看| 欧美成人精品三级网站| 特黄aaaaaaaaa毛片免费视频 | 中文字幕日韩一区二区不卡| 国产乱女乱子视频在线播放| 免费AV片在线观看网址| 黄瓜一区二区三区自拍视频 | 欧美精品在线观看| 午夜大尺度福利视频一区| 亚洲精品男男一区二区| 亚洲国模精品一区二区| 最近免费中文字幕大全免费版视频| 日本久久一区二区三区高清| 国内视频偷拍一区,二区,三区| 亚洲国产成人精品av区按摩| 国产精品美女www爽爽爽视频| 高潮videossex潮喷| 国产成人一区二区三区免费| 99久久成人亚洲精品观看| 九九热爱视频精品| 人妻精品动漫h无码|