Android 多线程
贺哎呦
这个作者很懒,什么都没留下…
展开
-
线程安全 voliate
voliate的三个特点1.可见性:一个线程修改了voliate修饰的值后,对于其他线程可见;2.有序性:保证临界区代码执行有序性;3.受限原子性:不保证原子性。voliate 如何实现线程安全实现变量可见性进制指令重排序voliate读写过程读:当一个线程读取被voliate修饰的值时,JVM将本地设置无效,从主内存读取共享变量写:当一个线程修改voliate修饰的值时,JVM将本地内存刷新到主内存voliate可见性底层原理借用了CPU的lock指令1.写voliate时,处原创 2022-05-03 23:35:10 · 780 阅读 · 5 评论 -
Android 多线程应用
传统线程的弊端1.重复创建线程对象,性能差;2.线程缺乏统一管理,可能会无限制创建新的线程,线程之间存在CPU资源竞争,导致CPU占用过高, 或者发生OOM;3.缺乏功能,例如定时。线程池的好处1.重用已存在的线程,减少对象的创建、销毁,性能佳2.有效控制最大并发线程,提高资源使用率,避免过多资源竞争,避免堵塞;3.提供定时执行、定期执行、单线程、并发控制等功能;线程池的使用1. newCacheThreadPoll (缓存线程池)可以灵活回收无任务的线程,如果没有线程回收,则创原创 2021-11-07 15:54:24 · 1763 阅读 · 0 评论 -
Android 多线程创建
Android多线程创建,两种方式1.继承Thread类2.实现Runable接口这两种属于Java多线程的创建,这里不做总结。下面总结一下两种的区别:继承Thread类,属于继承,存在缺陷,一个类只可以有一个父类,但是可以实现多个接口实现Runable接口,传参Thread创建线程,可以同时实现多个Thread传参同一个Runable实例,实现多个线程数据共享;继承Thread类也可以实现线程数据共享,但是只能访问静态变量,所以不建议这样使用。Thread也是实现Runable接口..原创 2021-11-07 10:16:13 · 1883 阅读 · 0 评论 -
Android 多线程意义
1.为什么要用多线程提高用户体验,避免ANR;异步处理事件(例如网络查看图片时,先显示占位图,等图片加载完成后,再显示图片);多任务(例如一款音乐APP可以支持播放,歌词查看,列表查看等功能);2.为什么多线程可以避免ANRANR: APP在5s内未响应用户的操作,或者是BroadcastReciever 超过10s未处理完;事件处理原则: 所有可能耗时的任务放在非主线程去处理;Android主线程包括:UI绘制;控件事件处理;通俗来讲,在代码中on开头的,就是属于主线程的任务,例如on原创 2021-11-07 09:20:35 · 560 阅读 · 0 评论