java并发编程    2019-05-13 21:03:02    12    0    0
# 线程安全的概念 我的理解是由于程序使用多线程的方式运行,导致程序无法正确的得出我们期望的结果。 什么会导致线程安全问题,主要是可见性、原子性、有序性问题。详细可见:[Java并发编程-可见性、原子性、有序性问题引入](https://leanote.baofeidyz.com/blog/post/baofeidyz/Java%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A
java并发编程    2019-05-12 21:35:18    6    0    0
>这篇文章属于读书笔记,学习极客时间Java并发编程实战课程时写下的,部分内容来源于课程 # 总述 解决**可见性**问题最直观的方法就是**禁用缓存和编译优化**。当然,如果直接禁用缓存和编译优化就会导致我们的程序性能很差。 所以合理的方案应该是**按需禁用缓存和编译优化**。 我们可以通过java提供的**volatile**、**synchronized**和**final**三个
java并发编程    2019-05-11 18:08:27    6    0    0
# 可见性 由于存储的成本和速度问题,我们的计算机采用了多级存储。CPU集成的三级缓存,主内存以及我们常用的硬盘存储。 我们的应用程序从硬盘存储加载到主内存中,当我们的CPU去执行指令运算的时候,会把需要运算的**代码块**加载到CPU集成的缓存中。每一个CPU都有自己的缓存,所以当我们使用多线程并发编程时,就会出现**可见性**问题。 如图所示: ![极客时间-java并发编程-可见性问
2019-05-08 14:15:35    4    0    0
[toc] # gitlab runner 的安装与注册 ## 1.访问项目的gitlab页面获取token > `Settings` -> `CI/CD` -> `Runners` 获取到当前项目的key,如下图所示: ![](http://qiniu.baofeidyz.com/picgo/20190508011304.png) 此时我们就可以拿到对应的to
2019-05-04 04:26:46    28    0    0
[toc] ## JDK版本 此文章基于jdk 1.8.0_191 ## 需要用到的知识点 ### 位运算 | 操作符 | 描述 | 例子 | | :----- | :-----------------------------