zoukankan      html  css  js  c++  java
  • 多线程、Service与IntentService的比较

    资料摘自网络(侵删)
     
     
    Service
    Thread
    IntentService
    AsyncTask
    When to use ?
    Task with no UI, but shouldn't be too long. Use threads within service for long tasks.
    - Long task in general.

    - For
    tasks in parallel use Multiple threads (traditional mechanisms)
    - Long task usually with no communication to main thread.
    (Update)- If communication is required, can use
    main thread handler or broadcast intents

    - When callbacks are needed (Intent triggered tasks). 
    - Small task having to communicate with main thread.

    - For tasks in parallel use multiple instances OR Executor
     
    Trigger
    Call to method
    onStartService()
    Thread start() method
    Intent
    Call to method execute()
    Triggered From (thread)
    Any thread
    Any Thread
    Main Thread (Intent is received on main thread and then worker thread is spawed)
    Main Thread
    Runs On (thread)
    Main Thread
    Its own thread
    Separate worker thread
    Worker thread. However, Main thread methods may be invoked in between to publish progress.
    Limitations /
    Drawbacks
    May block main thread
    - Manual thread management

    - Code may become difficult to read
    - Cannot run tasks in parallel.

    - Multiple intents are queued on the same worker thread.
    - one instance can only be executed once (hence cannot run in a loop) 

    - Must be created and executed from the Main thread
     
     
     
     





  • 相关阅读:
    poj1877
    poj2163
    API hook 单步调试
    用VC++编写勾子程序(转)
    不使用DLL创建全局系统钩子
    接触DLL编写并实现线程注入和全局钩子
    根据RGB计算亮度
    !!!光线对视频识别技术的影响
    消息钩子函数入门篇
    “蓝脑”计划:人造大脑的可能性 文化·探索 CCTV_com
  • 原文地址:https://www.cnblogs.com/Doing-what-I-love/p/5532976.html
Copyright © 2011-2022 走看看