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

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。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容