JDK 源码分析(1)- FutureTask
本篇是 JDK 源码分析的第一篇,主要关注 FutureTask 的实现。我们所分析的源码使用的是 Java10,因此也假设了读者了解 VarHandle(Java9 新增的 API),不了解的读者可以看我翻译的JEP 193。
本篇是 JDK 源码分析的第一篇,主要关注 FutureTask 的实现。我们所分析的源码使用的是 Java10,因此也假设了读者了解 VarHandle(Java9 新增的 API),不了解的读者可以看我翻译的JEP 193。
本篇我们来看看 Android 架构组件中的 LiveData 。跟 ViewModel 相比,LiveData 具有生命周期感知能力,也就是说,他把 ViewModel 和 lifecycle 结合了起来。当应用的数据有更新时,一般我们仅希望应用对用户可见时才更新 UI;更进一步,如果应用不可见,我们甚至可以停止数据的更新。这就是所谓的“感知应用的生命周期”。
Lifecycle 的实现跟 ViewModel 类似,都是利用 Fragment 来实现它的功能。通过添加一个 fragment 到 activity 中,这个 fragment 便能够接收到各个生命周期回调。
当客户端想要读取 log 数据的时候,可以使用 socket 连接至 /dev/socket/logdr。对应的连接由 LogReader 处理。这里的 reader 是从用户的角度来看的。如果站在 logd 的位置,实际上是把 log 数据写入 socket。为了避免混淆,后文统称“写回数据”。