Android 线程池(Android开发艺术探索)
2018-01-26 11:30
459 查看
private static final int CORE_POOL_SIZE = CPU_COUNT + 1;//核心线程数 private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1;//最大线程数 private static final long KEEP_ALIVE = 10L;//非核心线程超时时长
private static final ThreadFactory sThreadFactory = new ThreadFactory() { private final AtomicInteger mCount = new AtomicInteger(1); public Thread newThread(Runnable r) { return new Thread(r, "ImageLoader#" + mCount.getAndIncrement()); } }; public static final Executor THREAD_POOL_EXECUTOR = new ThreadPoolExecutor( CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), sThreadFactory);
private Handler mMainHandler = new Handler(Looper.getMainLooper()) { @Override public void handleMessage(Message msg) { LoaderResult result = (LoaderResult) msg.obj; ImageView imageView = result.imageView; String uri = (String) imageView.getTag(TAG_KEY_URI); if (uri.equals(result.uri)) { imageView.setImageBitmap(result.bitmap); } else { Log.w(TAG, "set image bitmap,but url has changed, ignored!"); } } };
Runnable loadBitmapTask = new Runnable() { @Override public void run() { Bitmap bitmap = loadBitmap(uri, reqWidth, reqHeight); if (bitmap != null) { LoaderResult result = 9468 new LoaderResult(imageView, uri, bitmap); mMainHandler.obtainMessage(MESSAGE_POST_RESULT, result).sendToTarget(); } } }; THREAD_POOL_EXECUTOR.execute(loadBitmapTask);
Android中最常见的四类具有不同功能特性的线程池,它们都直接或间接地通过配置Thread poolexecutor来实现自己的功能特性,这四类线程池分别是
FixedThreadpoolCached,Cached ThreadPool, Scheduled Pool以及 SingleThreadExecutor。
public static ExecutorService newFixedThreadPool(int nThreads){ return new ThreadPoolExecutor(nThreads, nThreads, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingDeque<Runnable>()); }
相关文章推荐
- 【读书笔记】【Android 开发艺术探索】第11章Android 的线程和线程池
- Android开发艺术探索<Android的线程池>
- Android开发艺术探索 第11章 线程与线程池 读书笔记
- android 艺术开发探索之线程和线程池
- Android开发艺术探索学习笔记6——线程和线程池
- 读书笔记-Android开发艺术探索-第11章-Android的线程和线程池
- Android开发艺术探索——第四章View的工作原理
- Android开发艺术探索<View的点击事件触发过程>
- Android IPC之Messenger和AIDL(android开发艺术探索随笔)
- Android开发艺术探索阅读笔记之二:Android的消息机制
- # 读 Android 开发艺术探索 &13
- Android开发艺术探索首观
- Android 开发艺术探索 精髓获取
- Android开发艺术探索阅后提炼
- 【读书笔记】【Android 开发艺术探索】第1章 Activity 的生命周期和启动模式
- Android开发艺术探索学习-IPC之Binder(一)
- Android开发艺术探索 第4章
- 读Android开发艺术探索笔记(LruCache+DiskLruCache实现强大的图片加载)
- android开发艺术探索(一)
- Android开发艺术探索读后感-part1