主题 : 关于Android开发中线程和线程池的知识记录
级别: 三阵秋雨

UID: 235154
精华: 0
发帖: 300
威望: 316 点
无痕币: 617 WHB
贡献值: 0 点
在线时间: 47(时)
注册时间: 2014-07-18
最后登录: 2020-02-20

关于Android开发中线程和线程池的知识记录

Android 中除了 Thread 之外能扮演线程的角色有很多如:AsyncTask 和 IntentService, HandlerThread
        AsyncTask 底层用到了线程池,而 IntentService 和 HandlerThread 底层则直接调用了线程。
        AsyncTask 封装了线程池和 Handler,其主要是为了开发者在子线程中更新 UI ;
        HandlerThread是一种具有消息循环的线程,在它的内部可以使用 Handler;
        IntentService 是一个服务,系统对其进行封装,使其可以更方便的执行后台任务 IntentService 内部使用了 HandlerThread 来执行任务,当任务执行完成之后 IntentService 会自动退出。
        从任务执行的角度来看, IntentService 更像是一种后台线程,但是 IntentService 又是一种服务,它不容易被系统杀死,所以可以保证任务能够一直执行。而如果只是后台进程,那么这个进程的优先级就会非常低,很容易被后台杀死。
        在操作系统中,线程是操作系统调度的最小的单元,同时线程又是一种受限制的系统资源,即线程是不可能无限制的产生,并且线程的创建和销毁都会有相应的开销,所以在 Android 中为了避免线程的无限创建,因此有了线程池的概念,主要是通过 Executor 来派生特定类型的线程池,不同种类的线程池又具有各自的特性。
        Android AysncTask 从源码角度简单理解它的使用限制原因
级别: 八片秋叶
UID: 94662
精华: 0
发帖: 4364
威望: 58621 点
无痕币: 24891 WHB
贡献值: 0 点
在线时间: 375(时)
注册时间: 2009-11-16
最后登录: 2024-04-23

了解一下了
级别: 八片秋叶

UID: 268851
精华: 0
发帖: 21068
威望: 38872 点
无痕币: 16569 WHB
贡献值: 0 点
在线时间: 1598(时)
注册时间: 2016-03-27
最后登录: 2024-04-20

谢谢分享,了解
级别: 八片秋叶

UID: 6806
精华: 0
发帖: 4384
威望: 67460 点
无痕币: 2712 WHB
贡献值: 0 点
在线时间: 811(时)
注册时间: 2007-12-28
最后登录: 2024-04-23

学习学习!
级别: 十方秋水

UID: 88
精华: 0
发帖: 130083
威望: 221815 点
无痕币: 107273 WHB
贡献值: 0 点
在线时间: 51938(时)
注册时间: 2008-03-18
最后登录: 2024-04-24

谢谢楼主的分享。
十方秋水,漫长旅途.
级别: 十方秋水

UID: 116295
精华: 0
发帖: 111450
威望: 122808 点
无痕币: 4249 WHB
贡献值: 0 点
在线时间: 6088(时)
注册时间: 2011-03-27
最后登录: 2024-03-09

感谢楼主分享软件
级别: 九滴秋露
UID: 2840
精华: 0
发帖: 32712
威望: 121596 点
无痕币: 123293 WHB
贡献值: 0 点
在线时间: 27244(时)
注册时间: 2007-12-04
最后登录: 2024-04-20

这个了解一下
Total 0.052208(s) query 4, Time now is:04-24 01:55, Gzip enabled 粤ICP备07514325号-1
Powered by PHPWind v7.3.2 Certificate Code © 2003-13 秋无痕论坛