![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术
文章平均质量分 91
~天了噜~
潜心练剑
展开
-
java内存模型与happens-before的关系
什么是happens-beforeJava5引入了明确定义的Java内存模型。其中最重要的一个概念就是happens-before关系。happens-before关系是用来描述两个操作的内存可见性的。如果操作X happens-before操作Y,那么X的操作结果对于Y是可见。同一个线程中,字节码的先后顺序也暗含了happens-before关系在程序控制流中靠前的字节码happen...原创 2020-02-11 15:00:51 · 130 阅读 · 0 评论 -
ThreadLocal解析
ThreadLocal的作用ThreadLocal常用来保存线程的私有数据,用它来完成线程之间的数据隔离,达到数据同步安全的目的,线程利用ThreadLocal来保存一份数据副本在其内部。下面我们就来分析下ThreadLocal的内部实现原理。关键类ThreadLocal$ThreadLocalMapThreadLocal的内部类,其内部用一个Entry[]数组,来描述和封装一个存储T...原创 2020-02-06 12:41:26 · 99 阅读 · 2 评论 -
VSync信号的由来以及用途
VSync的由来,用来解决什么问题的。单缓冲区在早期android(4.1以前) UI显示利用的是单缓冲区,在单缓冲区情况下,CPU和GPU绘图过程和屏幕刷新所用的buffer是同一块,假设此时屏幕的刷新频率和CPU/GPU的绘制速度不一致时,侧可能出现屏幕“割裂”的现象,即屏幕上同时显示两个不同帧中的部分画面。双缓冲区为了解决单缓冲区带来的问题,那么双缓冲区就因运而生了,什么是双双...原创 2020-02-04 18:01:16 · 1640 阅读 · 0 评论 -
并发编程中各种锁的介绍
1、乐观锁悲观锁以及它的应用1、悲观锁1、悲观锁是一种悲观的并发策略,总是认为只要不去做正确的同步措施(例如加锁),那就会出问题,无论共享数据是否真的会出现竞争,它都要进行加锁。2、java中利用synchronize的锁属于悲观锁。2、乐观锁1、基于冲突检测的乐观并发策略,即先进性操作,如果没有其他线程争用共享数据,那就操作成功了;如果共享数据有争用,那就采用补救措施。...原创 2020-01-21 23:09:29 · 236 阅读 · 0 评论 -
Gradle系列(1) Gradle入门介绍及Groovy基本语法介绍
1、Gradle基本入门介绍1、gradle/wrapper(1) wrapper 就是对gradle的一层封装,便于团队开发过程中统一Gradle的构建版本(2) 生成wrapper: 在项目的根目录下运行 gradlew wrapper(mac下运行 ./gradlew wrapper )命令2、gradle 常用命令行(1) 查看所有可执行的任务 gradlew task...原创 2019-12-29 16:51:15 · 206 阅读 · 0 评论 -
Gradle系列(4) Android Gradle
android{}其实是Gradle的一个第三方插件扩展类型,由google团队开发的。从Android角度看,Android插件是基于Gradle构建的,和Android Studio完美结无缝搭配的新一代构建系统。下面我们看看Android官方对他的介绍。(1)很容易的实现代码和资源的重用。(2) 很容易创建应用的衍生版本,所以不管是创建多个apk,还是不同功能的应用都很方便。比如说...原创 2020-01-01 20:52:48 · 138 阅读 · 0 评论 -
Gradle系列(3) Gradle插件的作用及用法
Gradle插件1、Gradle插件概念介绍首先我们来认识下什么是gradle插件,插件顾名思义是具有插拔功能的小部件,这个小部件可以在我们的项目中随插随拔随用,那么插件在项目的实际开发过程中能给我们带来什么作用呢?(1)添加插件可以添加任务到项目中,帮我们完成测试、编译、打包等工作。(2)可以添加依赖配置到项目中来,通过这些依赖配置来配置我们项目构建过程中需要的依赖,比如编译过程...原创 2019-12-29 17:25:10 · 1054 阅读 · 0 评论 -
Gradle系列(2) Task的介绍和用法
概念介绍Gradle中任务是其设计的核心之一,在利用Gradle构建项目的过程中task起着至关重要的地位,task在gradle脚本中就像其他语言中的方法一样,一个任务代表中一种具体的功能。项目的构建工作都是由一系列不同功能的task组成的。下面我们就来具体的了解下task在gradle中的用法。用法介绍Gradle中有很多创建task的方式,这主要是依赖于Project给我们提供...原创 2019-12-29 17:10:40 · 460 阅读 · 0 评论