- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 对于RxJava使用subscribeOn和observeOn切换线程的源码解读
当我们需要在RxJava的事件流中切换线程来执行代码,也就是使用RxJava的异步事件流编程,我们就需要使用subscribeOn和observeOn来进行切换线程。 那么当我们使用subscribeOn和observeOn来切换线程的时候,源码是怎么做的呢? subscribeOn Observable.create(new ObservableOnSubscribe<Object>() { @Override public void subsc
2020-12-07 22:24:25
224
原创 对于RxJava的map操作符的源码解读
map操作符在RxJava中是经常被使用的一个操作符,那么在使用map操作符的时候源码是怎么实现这一功能的呢? 先上一段代码 Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> emitter) throws Exception {
2020-12-06 17:40:01
285
原创 关于synchronized锁升级和volatile关键字的随笔
对volatile关键字的理解 volatile是Java语言的一个关键字,它可以解决线程可见性的问题。 原理就是volatile关键字会开启cpu的MESI缓存一致性协议,即在主内存和工作内存之间开启一条总线。 这条总线会记录所有线程各自使用的数据。 当检测到有数据将要执行write/store命令写入主内存的时候,别的线程会通过总线嗅探机制知道这件事(该数据发生修改)。 此时cpu将会立即把这个数据写入主内存,然后其他线程将会把自己工作内存中相对应的数据副本删除,之后再从主内存获取新的副本。 使用v.
2020-11-11 18:27:10
191
原创 关于Java泛型的随笔
android笔记——泛型的随笔 陈垍谋 2020/11/3 对于Java泛型的相关使用,我就不再说明了,这里主要是对于《Java核心技术 卷Ⅰ》里关于Java泛型介绍得表述不清的地方做个记录。 Java泛型的类型擦除和多态的冲突及解决方法 Java的泛型是伪泛型,即在Java代码经过编译器编译之后转换成字节码文件时,代码里的泛型都会转换成原生类型,这叫做Java的类型擦除。 看一个例子 //一个自定义泛型类Pair class Pair<T> { private T valu
2020-11-03 20:43:11
183
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人