zoukankan      html  css  js  c++  java
  • Android线程

    一、 new Thread()   VS  ThreadPoolExcutor

    1.  new Thread()的弊端

    1) 每次new Thread() 性能差

    2)线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom

    3)缺乏更多功能,如定时执行,定期执行,线程中断

    2. ThreadPoolExecutor--线程池,多线程的管理者

    引入好处:

    1)提升性能

    2)防止内存过度消耗,控制活动线程的数量,防止并发线程过多

    分类:

    1)new CachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,如无可回收线程,则新建线程

    2)new FixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待

    3)new ScheduledThreadPool 创建一个定长的线程池,支持定时及周期性任务执行

    4)new SingleThreadExecutor 创建一个单线程化的线程池,他只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO,LIFO)优先级别执行

    3. 拓展:为什么Progress可以在工作线程池中工作

    回答:因为progress的setProgress()方法添加了判断,如果不是主线程,使用了post()方法(依旧是依旧handle原理),通过handler将消息发送出去

  • 相关阅读:
    ASP.NET对IIS中的虚拟目录进行操作
    QLive EULA
    Windows Phone在模拟器中去除Debug信息
    Windows Phone区别应用是App还是Game
    UI Automation By Microsoft
    UIA: Choose item in Combobox
    身份证号码验证 C#
    Windows Phone 获取窗口大小
    重载 Sort, ==, !=
    C++枚举类型
  • 原文地址:https://www.cnblogs.com/Ayinger/p/11966414.html
Copyright © 2011-2022 走看看