線程池的簡單使用

創建指定線程數量的線程池

private static ExecutorService scheduledTaskFactoryExecutor = null;

private boolean isCancled = false;

private static class ThreadFactoryTest implements ThreadFactory {

@Override
public Thread newThread(Runnable r) {
Thread thread = new Thread(r);
     thread.setName(TAG);
      //通過Thread.setDaemon(false)設置為用戶線程;通過Thread.setDaemon(true)設置為守護線程
//主線程結束后用戶線程還會繼續運行,JVM存活;主線程結束后守護線程和JVM的狀態又下面第2條確定
//如果沒有用戶線程,都是守護線程,那么JVM結束(隨之而來的是所有的一切煙消云散,包括所有的守護線程)
//安卓程序退出后jvm會被回收掉,而java程序基于服務的退出后jvm不會立馬回收
     thread.setDaemon(true);
  return thread;
     }
}

static {
scheduledTaskFactoryExecutor = Executors.newFixedThreadPool(3, new ThreadFactoryTest());
   scheduledTaskFactoryExecutor.submit(new Runnable() {
@Override
    public void run() {
Log.i(TAG, "This is the ThreadFactory Test submit Run! ! ! ");
    }
});
}


AsyncTaskTest task = new AsyncTaskTest(url);
//把定義好的線程在線程池執行
task.executeOnExecutor(scheduledTaskFactoryExecutor);
mTaskList.add(task);


class AsyncTaskTest extends AsyncTask<Void, Integer, Void> {//異步任務

private String url;

public AsyncTaskTest(String url) {
this.url = url;
}

@Override
protected Void doInBackground(Void... params) {
if (!isCancelled() && isCancled == false) // 這個地方很關鍵,如果不設置標志位的話,直接setCancel(true)是無效的
     {
Bitmap bmp;
if (!url.contains("http")) {//表示網絡圖片
        bmp = ImageLoader.getInstance().loadImageSync("file://" + url, options);
     } else {
bmp = ImageLoader.getInstance().loadImageSync(url, options);
     }
   if (bmp != null) {
byte[] b = new byte[0];
try {
b = MyImageUtil.getImageThumbnailBase(bmp);
            upload(b);
            publishProgress(count); // 更新進度條
        } catch (IOException e) {
UMDocApplication.getInstance().getLog().e(e);
        }
Log.d(TAG, "byte length " + b.length);
        }
}
return null;
}

@Override
protected void onProgressUpdate(Integer... values) {
Log.d(TAG, "count " + values[0]);
if (values[0] == 1)
proBar.setVal(count);
}

}


轉載于:https://www.cnblogs.com/LiuZhen/p/5599853.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255055.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255055.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255055.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

異常--自定義異常類

為什么要調用父類構造器? http://blog.csdn.net/rockpk008/article/details/52951856 轉載于:https://www.cnblogs.com/dwj-ngu/p/6576382.html

利用ffmpeg來進行視頻解碼的完整示例代碼

&#xff08;轉&#xff09;利用ffmpeg來進行視頻解碼的完整示例代碼&#xff08;H.264&#xff09; Decode() { FILE * inpf; int nWrite; int i,p; int nalLen; unsigned char * Buf; int got_picture, consumed_bytes; unsigned char *DisplayBuf; Displ…

安卓觀看免費視頻

http://www.imooc.com/search/course?wordsAndroid%E6%94%BB%E5%9F%8E%E7%8B%AE%E7%AC%AC%E4%B8%80%E8%AF%BE&page3 http://www.imooc.com/course/list?candroid&src360onebox http://www.bilibili.com/video/av2788563/index_4.html http://www.imooc.com/course/pr…

EtherCAT 網站鏈接

http://www.ethercat.org.cn/cn.htm EtherCAT技術介紹 EtherCAT系統組成和工作原理 EtherCAT采用主從式結構&#xff0c;主站PC機采用標準的100Base-TX以太網卡&#xff0c;從站采用專用芯片。系統控制周期由主站發起&#xff0c;主站發出下行電報&#xff0c;電報的最大有效數…

IEC 6-1131/3的5種標準編程語言

用于開發控制系統和商業管理系統的TRACE MODE6編程工具面向不同領域的軟件工程師. TRACE MODE6包含的五種編程語言為&#xff1a;Techno SFC、Techno LD、Techno FBD、Techno ST和Techno IL. 這些語言是下列IEC 6-1131/3標準語言的擴展&#xff1a; SFC&#xff08;順序功能圖…

ngRx 官方示例分析 - 4.pages

Page 中通過構造函數注入 Store&#xff0c;基于 Store 進行數據操作。 注意 Component 使用了 changeDetection: ChangeDetectionStrategy.OnPush. OnPush means that the change detectors mode will be set to CheckOnce during hydration. /app/containers/collection-page…

用ffmpeg把yuv格式轉化為mpeg格式

http://blog.sina.com.cn/s/blog_5f5ad6a90100cs5k.html

方法:查詢MongoDB數據庫中最新一條數據(JAVA)

使用JAVA語言查詢MongoDB中某個數據庫某個集合的最新一條數據&#xff1a; MongoCollection<Document> cpu MongoClient.getDatabase("sysmgr").getCollection("cpu"); //獲取所需集合 Document dbo cpu.find().sort(descending("time"…

NoPause/NoEmgAbort的任務 與后臺任務的區別

NoPause/NoEmgAbort的任務示例 下面的例子顯示了一個程序&#xff0c;可以監視控制器的錯誤并根據錯誤編號在發生錯誤時切換I/O On/Off。 Function main Xqt ErrorMonitor, NoEmgAbort : FendFunction ErrorMonitor Wait ErrorOnIf 4000 < SysErr And Syserr < 5999 T…

30分鐘搞定后臺登錄界面(103個后臺PSD源文件、素材網站)(轉)

出處&#xff1a;http://www.cnblogs.com/best/p/6582294.html 目錄 一、界面預覽二、PSD源文件預覽三、工具分享四、資源說明五、素材下載網站六、下載去年八月時要做一個OA系統為了后臺界面而煩惱&#xff0c;后來寫了一篇博客&#xff08;《后臺管理UI的選擇》&#xff09;介…

Linux 查看服務器開放的端口號

在討論這個問題前&#xff0c;我們先來了解一下物理端口、邏輯端口、端口號等計算機概念。 端口相關的概念&#xff1a; 在網絡技術中&#xff0c;端口&#xff08;Port&#xff09;包括邏輯端口和物理端口兩種類型。物理端口指的是物理存在的端口&#xff0c;如ADSL Modem、集…

VC的文件路徑為什么要用雙斜杠

在編程時&#xff0c;打開文件的路徑在用單斜杠時&#xff0c;會出現問題&#xff0c;例如&#xff1a; image cvLoadImage("C:\Users\lyb\Documents\Visual Studio 2013\Projects\smooth\Debug\pic.png", 0);這樣的寫法在編譯時&#xff0c;不會出現編譯錯誤&#…

FFMpeg中apiexample.c例子分析——解碼分析

FFMpeg中apiexample.c例子分析——解碼分析 收藏 我們直接從 video_decode_example() 函數開始講&#xff0c;該函數實現了如何去解碼一個視頻文件&#xff0c;以 .mpeg 文 件為例。 &#xff08; 1 &#xff09;將緩存的末尾清 0 &#xff0c;從而確保讀操作不會越界導致破…

[轉]整理一些好的開源項目

首先說明&#xff0c;要想找開源項目&#xff0c;當然是Github&#xff01; 另外oschina上面也可能有你要的&#xff0c;這個是分類的鏈接&#xff1a;http://www.oschina.net/project/tags&#xff0c;比如這個是一個Python的相關開源資源&#xff1a;http://www.oschina.net/…

android是32-bit系統還是64-bit系統

轉自&#xff1a;http://www.cnblogs.com/pengwang/archive/2013/03/11/2954496.html 電腦CPU分32位和64位&#xff0c;這個我們都知道。用了這么長時間的android手機&#xff0c;突然有個疑問&#xff1a;android OS運行在多少位的CPU上呢&#xff1f; android應用程序是基于D…

海爾系列報道之一:海爾“小微”怎么玩

海爾去年裁了1.6萬人&#xff0c;今年上半年裁了5000人&#xff0c;這2.1萬人去了哪&#xff1f;除了被淘汰的部分&#xff0c;他們中的大多數去了169家小微公司. 從今年年初開始&#xff0c;海爾集團品牌總監范建斌就帶著海爾品牌部的兩個姑娘開始籌劃做一個文化小微公司&…

FFMpeg中apiexample.c例子分析——編碼分析

FFMpeg中apiexample.c例子分析——編碼分析apiexample.c例子教我們如何去利用ffmpeg庫中的api函數來自己編寫編解碼程序。 &#xff08;1&#xff09;首先&#xff0c;main函數中一開始會去調用avcodec_init()函數&#xff0c;該函數的作用是初始化libavcodec&#xff0c;而我們…

.net 常見異常及其翻譯

System.Exception//所有異常的基類型System.ApplicationException//發生非致命應用程序錯誤時引發的異常System.SystemException//為System命名空間中的預定義異常定義基類System.SystemException//異常根類System.AccessViolationException//在試圖讀寫受保護內存時引發的異常…

Access2010打開系統表MSysObjects的控制權限

一、顯示系統表 第一步&#xff1a;單擊左上角【文件】頁簽&#xff0c;點擊【選項】打開選項對話框&#xff0c;如圖所示 第二步&#xff1a;在【Access選項】對話框中&#xff0c;選擇【當前數據庫】&#xff0c;在【導航】欄下&#xff0c;點擊【導航選項】打開【導航選項】…