![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android 多线程
strugglelin
这个作者很懒,什么都没留下…
展开
-
Java 线程
文章目录1、线程介绍2、线程分类3、线程优先级4、线程调度5、线程同步6、线程联合7、多线程介绍8、进程介绍9、线程与进程区别1、线程介绍定义:CPU 执行的最小单元。作用:并发操作提高系统并发性能。状态:就绪、阻塞、运行 3种状态。2、线程分类守护线程1、定义:守护用户线程的线程,为其它线程提供服务。2、如:垃圾回收线程。设置方式:thread.setDaemon(tru...原创 2019-06-20 15:40:14 · 141 阅读 · 0 评论 -
Java:ThreadLocal
文章目录1.定义2.作用3.具体使用4.源码解析1.定义定义:线程局部变量2.作用保存线程独享的资源。3.具体使用public class ThreadLocalDemo { public static void main(String[] args) { ThreadLocal<String> threadLocal = new...原创 2019-09-03 09:49:10 · 972 阅读 · 0 评论 -
Java:synchronized
文章目录1、定义2、作用3、特点4、原理4、具体使用1、定义Java 关键字2、作用同步方法/代码块,保证同一时刻只有 1 个线程执行。3、特点保证原子性:操作全部执行,或全部不执行。保证可见性:一个线程修改共享属性的值,其它线程能看到值的更改。JVM 内存空间:主存、工作内存。共享属性修改流程:主存读取,复制到工作内存,在工作内存修改,同步到主存。保证有序性:单线程和多...原创 2019-08-28 10:32:17 · 988 阅读 · 1 评论 -
AsyncTask:源码分析
文章目录1、核心对象2、工作原理3、源码分析1、核心对象1.为 2 个线程池 + Handler。具体类类作用THREAD_POOL_EXECUTOR执行耗时任务线程池SERIAL_EXECUTOR执行并行任务线程池InternalHandler消息传递2、工作原理AsyncTask 初始化AsyncTask 执行3、源码分析...原创 2019-07-18 16:23:36 · 172 阅读 · 0 评论 -
AsyncTask:使用方式
文章目录1、定义2、作用3、优点4、具体使用5、注意点1、定义轻量级异步类。2、作用实现多线程安全,工作线程执行耗时操作,UI 线程更新 ui。3、优点方便实现多线程异步通信,相比(Thread + Handler)。采用线程池缓存复用线程,避免频繁创建销毁线程占用系统资源。4、具体使用public class AsyncTaskActivity extends Ap...原创 2019-07-15 16:58:02 · 157 阅读 · 0 评论 -
Handler:源码分析
1、核心类注: 表格属性 rowspan colspan 类名 核心方法 作用 处理器 Handler sendMessage(Message msg) 将消息发送到消息队列 post(Runnable r) dispatchMessage(Message msg) 将消息分发给...原创 2019-07-05 17:27:58 · 168 阅读 · 0 评论 -
Handler:使用方式
1、定义:Android 消息传递机制。2、作用:将工作线程更新UI操作信息传递到UI线程,在UI线程更新UI,保证多线程并发更新UI时线程安全。3、工作原理4、具体使用public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TextView mM...原创 2019-07-01 14:41:19 · 279 阅读 · 0 评论 -
ThreadPool:线程池
文章目录1、定义2、作用3、核心参数4、工作流程5、常用线程池6、具体使用1、定义缓存一定线程数量的区域。2、作用复用、管理线程,避免新建线程/销毁线程消耗CPU资源。3、核心参数参数作用corePoolSize(核心线程数)核心线程会一直存活maximumPoolSize(最大线程数)活动线程达到最大线程数,后续新任务会阻塞keepAliv...原创 2019-08-22 13:54:47 · 1292 阅读 · 1 评论 -
Handler:内存泄漏
1、内存泄漏定义:本该回收的对象不能被回收,能然停留在内存中。2、内存泄漏本质:持有引用对象的生命周期大于改引用对象的生命周期。如:一个对象不再使用,另一对象能持有改对象的引用,导致该对象不能被回收。...原创 2019-07-09 10:12:34 · 154 阅读 · 0 评论 -
Java:Callable
1、具体实现创建 FutureTask 辅助类 MyCallable 实现 Callable 接口。创建 MyCallable 对象:MyCallable myCallable = new MyCallable()。创建 线程辅助类 FutureTask 对象:FutureTask futureTask = new FutureTask(myCallable)。创建线程对象:Thread...原创 2019-06-27 10:18:54 · 606 阅读 · 0 评论 -
IntnetService:源码分析
1、工作原理继承 Service + ServiceHandler + HandlerThread。1、源码分析public abstract class IntentService extends Service { private volatile Looper mServiceLooper; private volatile ServiceHandler mServ...原创 2019-08-08 13:52:56 · 197 阅读 · 0 评论 -
IntentService:使用方式
文章目录1、定义2、作用3、工作流程4、具体使用1、定义Android Service 的封装类。2、作用按顺序,在后台执行线程任务,执行完自动关闭服务。3、工作流程4、具体使用public class IntentServiceActivity extends AppCompatActivity { private LocalBroadcastManager m...原创 2019-08-05 11:29:13 · 215 阅读 · 0 评论 -
HandlerThread:源码分析
1、工作原理继承 Thread,可以创建一个带 Looper 对象的工作线程。封装 Handler,与其他线程进行通信。2、源码分析public class HandlerThread extends Thread { int mPriority; int mTid = -1; Looper mLooper; private @Nullable Hand...原创 2019-07-30 10:44:26 · 127 阅读 · 0 评论 -
Java:Runnable
1、具体实现创建线程辅助类 MyRunnable。创建线程辅助对象:MyRunnable runnable = new MyRunnable()。创建线程对象:Thread thread1 = new Thread(runnable, “线程一”);。调用线程对象的 start() 方法。public class RunnableDemo { public static v...原创 2019-06-26 17:21:47 · 742 阅读 · 0 评论 -
Java:Thread
1、具体实现创建 MyThread 类继承 Thread。创建 MyThread 对象:MyThread thread1 = new MyThread()。调用对象的 start() 方法。public class ThreadDemo { public static void main(String[] args) { MyThread thread1 =...原创 2019-06-21 11:43:55 · 225 阅读 · 0 评论 -
HandlerThread:使用方式
1、定义轻量级异步类。2、作用继承 Thread + 封装 Handler,方便顺序执行耗时任务。3、具体使用创建 HandlerThread 管理耗时任务执行。创建 workHandler 执行具体耗时任务,绑定 HandlerThread 的 Looper 。创建 uiHandler 执行具体 UI 更新。workHandler 发送消息通知执行具体耗时任务。pu...原创 2019-07-24 10:09:39 · 189 阅读 · 0 评论