一针见血系列[5]: 一句话理解什么是happens-before

发布日期:2018年10月29日| 点击: 1,391 次| 暂无评论

在程序运行过程中,所有的变更会先在寄存器或本地cache中完成,然后才会被拷贝到主存以跨越内存栅栏,此种跨越序列或顺序称为happens-before。 注:happens-before本质是顺序,重点...

一针见血系列[4]: 一句话理解内存屏障/内存栅栏

发布日期:2018年10月29日| 点击: 1,547 次| 暂无评论

本文从简单入手,简单不代表肤浅,技术都是从简单发展起来的,然后变得复杂,甚至都偏离了初衷。有的人瞧不起简单,可不是什么好事啊。 简单来说内存屏障(Memory Barrier,或内存栅栏,Memory ...

一针见血系列[3]: 一针见血理解ThreadLocal类

发布日期:2018年10月29日| 点击: 856 次| 暂无评论

ThreadLocal类是修饰变量的,重点是在控制变量的作用域,初衷可不是为了解决线程并发和线程冲突的,而是为了让变量的种类变的更多更丰富,方便人们使用罢了。很多开发语言在语言级别都提供这种作用域的变量类型。 根...

一针见血系列[2]: 线程池里面到底该设置多少个线程呢...

发布日期:2018年10月29日| 点击: 3,083 次| 暂无评论

在Java中,通过下面的代码,我们可以很容易地获取到系统可用的处理器核心数目: [crayon-5da5b042558b9187038304/] 基本原则是:应用程序的最小线程数应该等于可用的处理器核数。具体场景又分...

一针见血系列[1]: synchronized的两大不足

发布日期:2018年10月29日| 点击: 2,634 次| 评论: 1

第一大不足:由于我们没办法设置synchronized关键字在获取锁的时候等待时间,所以synchronized可能会导致线程为了加锁而无限期地处于阻塞状态。 第二大不足:使用synchronized关键字等同于使用了...

一针见血系列[0]: 关于一针见血系列的说明

发布日期:2018年10月29日| 点击: 729 次| 暂无评论

多线程与并发,这是一门学科,请把它当作一门独立的学科看待的。这门学科的内容,只有从多角度多层次的学习,才能有更好的学习效果。 对于多线程的内容,金丝燕网分为以下几个部分: 第一部分:《一针见血系列...

shell知识库[9]: shell脚本的运行两种方式

发布日期:2018年10月29日| 点击: 366 次| 暂无评论

第一种方式是:当做命令行参数,此时脚本不需要有执行权限。这种方式常见有三种具体的形式: (1)sh script.sh (2). script.sh (3)source script.sh ...

shell知识库[8]: shell中$*和$@的区别

发布日期:2018年10月29日| 点击: 346 次| 暂无评论

$* 和 $@ 都表示传递给函数或脚本的所有参数,本文重点说一下它们之间的区别。 当 $* 和 $@ 不被双引号" "包围时,它们之间没有任何区别,都是将接收到的每个参数看做一份数据,彼此之间以空格来分...