博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程池的简单使用
阅读量:5816 次
发布时间:2019-06-18

本文共 2223 字,大约阅读时间需要 7 分钟。

创建指定线程数量的线程池

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
{//异步任务 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

你可能感兴趣的文章
第四章 TCP粘包/拆包问题的解决之道---4.1---
查看>>
html语言
查看>>
从源码看集合ArrayList
查看>>
spring-boot支持websocket
查看>>
菜鸟笔记(一) - Java常见的乱码问题
查看>>
我理想中的前端工作流
查看>>
记一次Git异常操作:将多个repository合并到同一repository的同一分支
查看>>
CodeIgniter 3.0 新手捣鼓源码(一) base_url()
查看>>
Chrome 广告屏蔽功能不影响浏览器性能
查看>>
vSphere 6将于2月2日全球同步发表
查看>>
Android状态栏实现沉浸式模式
查看>>
让你的APP实现即时聊天功能
查看>>
iOS 绝对路径和相对路径
查看>>
使用Openfiler搭建ISCSI网络存储
查看>>
IntPtr 转 string
查看>>
学生名单
查看>>
(转) 多模态机器翻译
查看>>
【官方文档】Nginx负载均衡学习笔记(三) TCP和UDP负载平衡官方参考文档
查看>>
矩阵常用归一化
查看>>
Oracle常用函数总结
查看>>