最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android編程自定義線程池與用法示例

 更新時間:2017年12月28日 12:07:22   作者:LovooGod  
這篇文章主要介紹了Android編程自定義線程池與用法,結(jié)合實例形式分析了Android線程池的功能、定義及簡單使用方法,需要的朋友可以參考下

本文實例講述了Android編程自定義線程池與用法。分享給大家供大家參考,具體如下:

一、概述:

1、因為線程池是固定不變的,所以使用了單例模式
2、定義了兩個線程池,長的與短的,分別用于不同的地方。因為使用了單例模式,所以定義兩個。
3、定義了兩個方法,執(zhí)行的與取消的

二、代碼:

/**
 * @描述    線程管理池
 * @項目名稱   App_Shop
 * @包名     com.android.shop.manager
 * @類名     ThreadManager
 * @author   chenlin
 * @date    2014年3月29日 下午10:17:06
 */
public class ThreadManager {
  private ThreadManager(){};
  private static ThreadManager instance= new ThreadManager();
  private ThreadPoolProxy longPoolProxy;
  private ThreadPoolProxy shortPoolProxy;
  public static ThreadManager getInstance(){
    return instance;
  }
  /**
   * 長線程池
   * @return
   */
  public synchronized ThreadPoolProxy createLongPool(){
    if (longPoolProxy == null) {
      //(int corePoolSize 線程池大小, int maximumPoolSize 最大值, long keepAliveTime 存活時間)
      longPoolProxy = new ThreadPoolProxy(5, 5, 5000);
    }
    return longPoolProxy;
  }
  /**
   * 短線程池
   * @return
   */
  public synchronized ThreadPoolProxy createShortPool(){
    if (shortPoolProxy == null) {
      shortPoolProxy = new ThreadPoolProxy(3, 3, 5000);
    }
    return shortPoolProxy;
  }
  public class ThreadPoolProxy{
    private ThreadPoolExecutor pool;
    private int corePoolSize; //線程數(shù)
    private int maximumPoolSize; //線程滿了后額外開的線程窗口
    private long keepAliveTime;//沒有線程執(zhí)行時存活時間
    public ThreadPoolProxy(int corePoolSize,int maximumPoolSize, long keepAliveTime){
      this.corePoolSize = corePoolSize;
      this.maximumPoolSize = maximumPoolSize;
      this.keepAliveTime = keepAliveTime;
    }
    /**
     * 執(zhí)行線程
     * @param runnable
     */
    public void execute(Runnable runnable){
      if (pool == null) {
        //最多可有多少個線程排隊
        BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<Runnable>(10);
        pool = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit.MILLISECONDS, workQueue);
      }
      pool.execute(runnable);
    }
    /**
     * 取消線程
     * @param runnable
     */
    public void cancel(Runnable runnable){
      if (pool != null) {
        pool.remove(runnable);
      }
    }
  }
}

三、使用方法:

ThreadManager.getInstance().createLongPool().execute(new Runnable() {
  @Override
  public void run() {
    //SystemClock.sleep(2000);
    final LoadResult result = loadFromServer();
    if (result != null) {
      Util.runOnUiThread(new Runnable() {
        @Override
        public void run() {
          currentState = result.getValue();
          showPages();
        }
      });
    }
  }
});

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android線程與消息機制用法總結(jié)》、《Android開發(fā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)

希望本文所述對大家Android程序設計有所幫助。

相關(guān)文章

  • 詳解Android平臺JSON預覽(JSON-handle)

    詳解Android平臺JSON預覽(JSON-handle)

    這篇文章主要介紹了Android平臺JSON預覽(JSON-handle),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Android編程中context及全局變量實例詳解

    Android編程中context及全局變量實例詳解

    這篇文章主要介紹了Android編程中context及全局變量的用法,結(jié)合實例形式較為詳細的分析講述了context及全局變量的使用技巧與相關(guān)注意事項,需要的朋友可以參考下
    2015-12-12
  • Android RecyclerView 復用錯亂通用解法詳解

    Android RecyclerView 復用錯亂通用解法詳解

    本篇文章主要介紹了Android RecyclerView 復用錯亂通用解法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Android開發(fā)TextvView實現(xiàn)鏤空字體效果示例代碼

    Android開發(fā)TextvView實現(xiàn)鏤空字體效果示例代碼

    這篇文章主要介紹了Android開發(fā)TextvView實現(xiàn)鏤空字體效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 解決Android 10/Android Q手機在后臺無法正常定位問題

    解決Android 10/Android Q手機在后臺無法正常定位問題

    這篇文章主要介紹了解決Android 10/Android Q手機在后臺無法正常定位問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Android 百度地圖Sha1獲取的方法

    Android 百度地圖Sha1獲取的方法

    這篇文章主要介紹了Android 百度地圖Sha1獲取的方法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • android 把float轉(zhuǎn)換成Int的實例講解

    android 把float轉(zhuǎn)換成Int的實例講解

    今天小編就為大家分享一篇android 把float轉(zhuǎn)換成Int的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 淺談Android串口通訊SerialPort原理

    淺談Android串口通訊SerialPort原理

    這篇文章主要介紹了淺談Android串口通訊SerialPort原理,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • Android自定義view實現(xiàn)圓環(huán)進度條效果

    Android自定義view實現(xiàn)圓環(huán)進度條效果

    這篇文章主要為大家詳細介紹了Android自定義view實現(xiàn)圓環(huán)進度條效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 詳解如何從原生Android 跳轉(zhuǎn)到hbuilder項目

    詳解如何從原生Android 跳轉(zhuǎn)到hbuilder項目

    這篇文章主要介紹了從原生Android 跳轉(zhuǎn)到hbuilder項目,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08

最新評論

抚远县| 上栗县| 珲春市| 蓝山县| 台北市| 红桥区| 榕江县| 沂南县| 霍邱县| 林甸县| 师宗县| 东港市| 赤壁市| 金门县| 五家渠市| 金昌市| 敦化市| 乡城县| 家居| 夏河县| 建平县| 赫章县| 连江县| 五华县| 桃园市| 长丰县| 宜昌市| 普定县| 普陀区| 修水县| 濮阳市| 平凉市| 维西| 临猗县| 萍乡市| 天等县| 察隅县| 威宁| 临漳县| 湟中县| 靖边县|