关于android使用线程池记录一下

作者: ccccccal | 来源:发表于2017-10-16 17:17 被阅读100次

关于创建线程现在还在使用:

new Thread(new Runnable() {

    @Override
    public void run() {
        Log.d(TAG,"asd")
    }
}).start();

上面方法是有一些弊端:

  • 每次new Thread都会新建对象。
  • 线程没有统一管理,有可能会创建无数个线程,占用资源过多导致卡死,OOM
  • 缺少一些特定功能,(定时,定期,执行和中断)等

相比之下线程池优点:

  • 复用线程对象,减少创建
  • 控制线程并发量,避免堵塞
  • 可以设置定期执行

常用的几种线程池:

  • 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。
ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
  • 创建一个控制线程数量的线程池,可控制线程最大并发数,超出的线程会在队列中等待。
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(5);
  • 创建一个控制线程数量的长线程池,支持定时及周期性任务执行
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
scheduledThreadPool.schedule(new Runnable() {
 
    @Override
    public void run() {
        System.out.println("表示延迟5秒执行");
    }
}, 5, TimeUnit.SECONDS);
scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
 
    @Override
    public void run() {
        System.out.println("表示延迟1秒后每5秒执行一次");
    }
}, 1, 5, TimeUnit.SECONDS);
  • 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行,结果依次输出,相当于顺序执行各个任务。(适用于操作数据库等防止并发的操作)
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();

执行线程:

thread.execute(new Runnable() ;

关于扩展线程池,以及自定义线程池

相关文章

  • 关于android使用线程池记录一下

    关于创建线程现在还在使用: 上面方法是有一些弊端: 每次new Thread都会新建对象。 线程没有统一管理,有可...

  • 线程池创建和相关知识

    线程池创建(单例):Android线程池得要这么用 - 简书 线程池相关知识:Android开发之线程池使用总结 ...

  • Android线程池的使用

    一、线程与线程池,为什么要使用线程池 1、Android中的线程 在Android中有主线程和子线程的区分。主线程...

  • 线程池

    话题:线程池Android中的线程池有哪些?它们的区别是什么?为什么要使用线程池? 线程是Android里面一个很...

  • Android多线程规划

    Android上的线程池使用 Android线程 特性 Each thread costs a minimum o...

  • 第十九周 线程池

    话题:线程池 Android 中的线程池有哪些?它们的区别是什么?为什么要使用线程池?关键字:线程池、Thread...

  • Android | 线程池的使用和简单原理

    参考文献: Android 多线程: 完全解析线程池ThreadPool原理&使用 Android开发——Andr...

  • Android中的线程池

    为什么要使用线程池?Android 中的线程池有哪些?它们的区别是什么? 一、线程池的作用 重用线程池中的线程,可...

  • Android中的线程池

    前言 提到线程池,我们先说一下使用线程池的好处。使用线程池的优点可以概括为:1、重复使用线程池中的线程,避免因为线...

  • 线程+线程池+使用

    Android 多线程: 完全解析线程池ThreadPool原理&使用https://blog.csdn.net/...

网友评论

    本文标题:关于android使用线程池记录一下

    本文链接:https://www.haomeiwen.com/subject/vmqluxtx.html