![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
必备底层
文章平均质量分 77
一些工作中用不上的底层知识
戏入人生。
天道酬勤
展开
-
CAS共享锁机制分析
CAS共享锁机制分析什么是共享锁?AQS原理概述共享锁逻辑分析(Semaphore角度分析AQS共享逻辑)共享锁获取共享锁释放共用方法什么是共享锁?能被多个线程同时获得的锁,为共享锁。也称之为读锁。与互斥锁(写锁)互斥。AQS原理概述其核心是一个volatile关键字修饰的int类型的state变量,以及一个由双向指针组成的链表队列。队列再初始化的时候,会CAS生成一个head空节点,后继被阻塞的节点会添加到这个空节点的后面,并相互建立pre和next指针。而state变量在不同的锁中,使用方式原创 2022-03-27 15:36:10 · 807 阅读 · 0 评论 -
算法基础 - 位图
算法基础 - 位图什么是位图规则实现位运算: 加减乘除什么是位图功能:就是可以做出一个集合,如果数字范围能确定(最大值),就可以用位图来收集数字,表示存在或者不存在。好处:极大的压缩空间。规则与(&)0 & 0 = 00 & 1 = 01 & 0 = 01 & 1 = 1或(|)0 | 0 = 00 | 1 = 11 | 0 = 11 | 1 = 1异或(^)0 ^ 0 = 00 ^ 1 = 1原创 2022-02-08 01:18:19 · 299 阅读 · 0 评论 -
Apollo配置中心
Apollo配置中心原创 2021-06-21 00:33:51 · 21103 阅读 · 1 评论 -
JAVA程序员需要了解的计算机底层知识(4)
JAVA程序员需要了解的计算机底层知识(4)内存的发展历程解决进程太多,会导致内存不够用的问题解决互相打扰,可能一个进程把另外一个进程干掉的问题扩展ZGC内存的发展历程在DOS时代,一台计算机只能运行一个进程(一些特殊的算法可以实现多进程)Windows9.X的时候,多个进程可以装入内存,但是这个时候会引发两个问题1.进程太多,会导致内存不够用2.互相打扰,可能一个进程把另外一个进程干掉...原创 2020-04-19 11:53:34 · 234 阅读 · 0 评论 -
JAVA程序员需要了解的计算机底层知识(3)
JAVA程序员需要了解的计算机底层知识(3)程序、进程、线程、纤程进程和线程:纤程:僵尸进程孤儿进程进程(任务)的调度多任务有两种方式:进程调度的基本概念linux默认的调度策略中断程序、进程、线程、纤程进程和线程:举个例子,QQ是一个程序,在我们双击它的时候,OS会把它读入内存中(分配一块内存空间),当然也可以启动多个QQ,每一个QQ都是一个进程,都会被分配一块独立的内存空间,CPU开始读...原创 2020-04-18 17:08:22 · 394 阅读 · 0 评论 -
JAVA程序员需要了解的计算机底层知识(2)
JAVA程序员需要了解的计算机底层知识(2)CPU的乱序执行JAVA中乱序执行是否会影响代码?CPU层面如何禁止乱序?JVM层级禁止乱序的规范?hotspot如何实现的禁止乱序?操作系统OSCPU的乱序执行CUP在进行读等待的同时执行其他指令,是CPU乱序的根源,不是乱,是优化提高效率。比如一个泡茶的过程 :洗水壶,烧开水,洗茶壶,洗茶杯,拿茶叶,泡茶但是在实际生活的中,除了烧开水和泡茶...原创 2020-04-17 22:00:31 · 505 阅读 · 0 评论 -
JAVA程序员需要了解的计算机底层知识(1)
JAVA程序员需要了解的计算机底层知识(1)CPU、内存?什么是总线?显卡?内存是如何把数据写给显卡的?主板汇编语言的本质?C和JAVA的class二进制码都可以被CPU执行吗?一个程序的加载过程计算机的组成?四核八线程CPU怎么理解?CPU缓存的结构每次读取“一块”数据,造成数据伪共享?性能测试代码CPU、内存?CPU的执行原理:cpu是电脑的核心,负责计算,里面有很多层精管道,用于处理数据...原创 2020-04-16 21:04:04 · 983 阅读 · 0 评论