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。为了避免混淆,后文统称“写回数据”。