线程安全处理笔记(一)
来源:互联网 发布:无锡大数据it 编辑:程序博客网 时间:2024/05/29 23:48
目前主流智能操作系统都引入了多线程的计算,这就带来了线程的安全问题,而线程安全问题多是由多线程对共享资源的访问引起的。
在线程的安全方面,Android采用的更多是java的实现,,除了Java的join()、wait()、sleep()、notify()等方法和synchrononized关键字外,还有Java的并发库。
除了synchrnoized关键字外,基于Java的多线程安全均比较复杂,对于不是十分复杂的场景,优先考虑使用AsyncTask进行多线程处理
synchronized同步:
在Android的应用层,多线程的并发很多是靠synchronized关键字实现的,这样的实现非常的简单,通过synchronized关键字,可以实现方法和语句块的同步,同步的本质是对特定的对加锁,他们可以使来自调用方法的对象,也可以是开发者设计的对象。
synchronized关键字并不能继承,对于父类的同步方法,在子类中也必须再次的显示的声明才能成为同步方法。
synchronized关键字的局限在于试图获得锁的时候无法设定超时和中断,每个锁只有一个条件,在某些场景下可能不够用,另外同步会带来很大的开销,甚至造成死锁,因此在开发时要避免无所谓的同步。
方法同步:一般方法同步(将synchronized关键字作用于对象应用object reference,作用域仅限类的单个对象)、静态的方法同步(本质是将类本身作为锁,其作用域是该类的所有对象)
语句块同步
SQLIte调用
对于SQLite的调用,可能会存在多处同时执行读和写的操作的场景,这种场景也要考虑线程的安全性,Android提供了AsyncQueryHandler方法来解决这一问题。将耗时的查询操作放置在非UI的主线程中,操作结束后,通过Handler调用相应的UI主线程的方法处理操作执行的结果。
- 线程安全处理笔记(一)
- JAVA学习笔记之多线程专题(一):线程同步安全处理
- 线程安全(一)
- 线程安全(一)
- java线程安全(一)
- Java线程安全(一)
- 线程安全总结(一)
- 线程安全队列(一)
- iOS线程处理 学习笔记(一)并发
- 线程笔记(一)
- 信息安全笔记(一)
- IOS多线程 pThread NSThread 线程安全 个人笔记(一)
- 深入浅出GUI线程安全(一)
- java线程安全总结(一)
- java线程安全总结(一)
- java线程安全总结(一)
- JAVA线程安全队列(一)
- java线程安全总结(一)
- MacBook下疑难杂症诊断攻略
- 结构和类
- 判断颁奖人员(C语言实现)
- linux下git的基本命令与github的基本运用
- VM上配置linux服务器解决mac地址冲突,无法联网问题
- 线程安全处理笔记(一)
- 秒杀多线程第一篇 多线程笔试面试题汇总
- 模块化思想重写之前写的My97DatePicker的例子
- linux常用命令收集2
- andriod进程的优先级,已经android内存不够时,清除进程的机制
- 这些应用可以让你的kindle发挥到极致
- 从三无科学家之争想到的
- iOS拍照和视频录制
- android studio introduction No.1