12、Android 进程中的线程与序列化技术解析

Android 进程中的线程与序列化技术解析

1. Android 中的线程并发

在 Android 开发中,AsyncTask 和 ContentProvider 结合起来能形成强大的编程范式,适用于多种常见的应用架构。对于大多数视图轮询模型的 MVC 模式,都可以采用这种方式实现。不过,在一些需要模型主动向视图推送更改,或者模型需要长时间持续运行的应用架构中,AsyncTask 可能就不够用了。

线程间数据共享有一个重要规则,但在一般情况下,这个规则执行起来比较繁琐。对 AsyncTask 的研究展示了一种简化 Android 并发任务协调的编程范式,即通过模板类的实现隐藏了从一个线程向另一个线程发布状态的复杂操作。同时,这也提醒开发者要注意并发编程中可能遇到的陷阱。

线程限制(Thread Confinement)是一种常见且安全的并发编程范式,被集成到了 Android 框架中。下面通过一个例子来说明线程限制的工作流程:假设有两个线程,DBMinder 和 DBViewer,DBMinder 创建并修改一个对象,完成工作后需要将对象传递给 DBViewer 进行进一步处理。使用线程限制时,它们需要共享一个放置点(drop point)和一个关联的锁,具体流程如下:
1. DBMinder 获取锁,并将对象的引用存储在放置点。
2. DBMinder 销毁自身对该对象的所有引用。
3. DBMinder 释放锁。
4. DBViewer 获取锁,发现放置点有对象引用。
5. DBViewer 从放置点恢复对象引用,并清空放置点。
6. DBViewer 释放锁。

这个过程适用于任何对象,无论该对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值