AQS:AbstractQueuedSynchronizer 1 使用Node实现FIFO队列,可以用于构建锁或者其他同步装置的基础框架 2 利用了int类型表示状态 3 使...
AQS:AbstractQueuedSynchronizer 1 使用Node实现FIFO队列,可以用于构建锁或者其他同步装置的基础框架 2 利用了int类型表示状态 3 使...
发布对象 发布对象:使一个对象能够被当前范围之外的代码所使用 对象逸出:一种错误的发布。当一个对象还没有构造完成时,就使它被其他线程所见 安全发布对象四种方法 1 在静态初始...
全局通用的线程池组件-HiExecutor 支持任务优先级 支持线程池暂停、恢复、关闭 支持异步任务结果回调 Coding实现 线程池参数构造 实现线程池中任务按优先级执行 ...
易用高扩展的日志组件HiLog封装 功能清单 能够打印堆栈信息 支持任何数据类型的打印 能够实现日志可视化 能够实现文件打印和保存 支持不同打印器的插拔 日志经历的几个过程 ...
背景 流式布局在移动端或者前端开发中很常见,特别是在多标签的展示中, 往往起到了关键的作用。然而Android 官方, 并没有为开发者提供这样一个布局,可参考github有名...
自定义View类型 1. 自定义View 在没有现成的View,需要自己实现的时候,就使用自定义View,一般继承自View,SurfaceView或其他的View 2. 自...
java类参数和kotlin类为参数区别 kotlin使用Java代码的callback kotlin使用kotlin代码的callback 禁止Java代码调用kotlin
1、为什么要项目组件化 随着 APP 版本不断的迭代,新功能的不断增加,业务也会变的越来越复杂,APP 业务模块 的数量有可能还会继续增加,而且每个模块的代码也变的越来越多,...
sychronied修饰普通方法和静态方法的区别?什么是可见性? 对象锁是用于对象实例方法,或者一个对象实例上的,类锁是用于类的静态方法或者一个类的class对象上的。我们知...
Java内存模型 想要理解 volatile 为什么能确保可见性,就要先理解Java中的内存模型是什么 样的。 Java内存模型规定了所有的变量都存储在主内存中。每条线程中还...
为什么要用线程池? Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。第一:降...
阻塞队列 队列image.png队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操...
什么是原子操作?如何实现原子操作? 假定有两个操作A和B(A和B可能都很复杂),如果从执行A的线程来看,当另一个线程执行B时,要么将B全部执行完,要么完全不执行B,那么A和B...
启动 启动线程的方式只有:1、X extends Thread;,然后X.start2、X implements Runnable;然后交给Thread运行 线程的状态 J...
与Synchonized的比较ThreadLocal和Synchonized都用于解决多线程并发訪问。可是ThreadLocal与synchronized有本质的差别。syn...