美文网首页
【原创】Android多线程机制总结

【原创】Android多线程机制总结

作者: nanteschen | 来源:发表于2018-11-09 16:48 被阅读0次

    Android中常用的多线程机制主要有以下几个:new Thread(), AsyncTask, Handler Thread, Intent Service 还有线程池。

    new Thread(): 在阿里开发手册中明确禁止使用这种方式开启新线程,主要是因为新线程这样开启之后无法主动停止,只适合执行耗时短的轻量级任务

    AsyncTask: 适合执行轻量级耗时短任务,它的实例必须在主线程中创建,内部实现是Handler+线程池(默认串行)。但是个人感觉在实际开发中AsyncTask实现比较繁琐,代码可读性差,有一定经验的程序员可以适当地使用new Thread()方式提高开发效率。

    Handler Thread: 使用这种方式开启的线程可以长时间运行,不断地从任务队列中获取任务。它是Thread的子类,内部实现是Handler+Thread,它的任务队列是一个串行队列,不适合执行耗时太多的任务,比如网络请求,如果一个请求卡住了,后面的任务都会延迟。

    Intent Service:适合执行耗时任务,它本质上是一个Service,但是优先级比一般Service高,在后台不易被杀死,执行完任务后会自动退出。它是Service的子类,内部实现是Handler+HandlerThread。

    线程池:适合需要频繁创建和销毁的多线程任务

    相关文章

      网友评论

          本文标题:【原创】Android多线程机制总结

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