
操作系统
Josvin
这个作者很懒,什么都没留下…
展开
-
多线程进阶:CAS机制
面试题: 讲解下你自己理解的 CAS 机制 ABA问题怎么解决? 1、 什么是 CAS CAS: 全称Compare and swap,字面意思:”比较并交换“,一个 CAS 涉及到以下操作: 我们假设内存中的原数据V,旧的预期值A,需要修改的新值B。 - 比较 A 与 V 是否相等。(比较) - 如果比较相等,将 B 写入 V。(交换) - 返回操作是否成功。 当多个线程同时对某个资源进行CAS操作,只能有一个线程操作成功,但是并不会阻塞其他线程,其他线程只会收到操作失败的信号。可见 C原创 2020-08-18 23:00:02 · 482 阅读 · 0 评论 -
多线程进阶:锁优化
锁优化原创 2020-08-18 00:12:06 · 451 阅读 · 0 评论 -
多线程进阶:各种锁策略
常见面试题: 你是怎么理解乐观锁和悲观锁的,具体怎么实现呢? 有了解什么读写锁么? 什么是自旋锁,为什么要使用自旋锁策略呢,缺点是什么? 什么是死锁,死锁的产生以及解决办法? synchronized 是可重入锁么? 乐观锁 VS 悲观锁 乐观锁:乐观锁假设认为数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是否产生并发冲突进行检测,如果发现并发冲突了,则让返回用户错误的信息,让用户决定如何去做。 悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数原创 2020-08-11 21:15:36 · 523 阅读 · 0 评论 -
深入理解JVM:垃圾收集器
垃圾收集器 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。以下讲的收集器基于JDK1.7的G1收集器之后的HotSpot虚拟机,这个JVM包含的所有收集器如下图所示: 上图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明他们之间可以搭配使用。所处的区域,表示它是属于新生代收集器还是老年代收集器。在讲具体的收集器之前我们先来明确三个概念: 并行(Parallel) : 指多条垃圾收集线程并行工作,用户线程仍处于等待状态 并发(Concurrent) : 指用户原创 2020-08-10 00:26:44 · 205 阅读 · 0 评论 -
深入理解JVM:GC(垃圾回收机制)
GC(垃圾回收机制) GC是干啥的 简单来说,C语言的特点相当于是一个手动档的汽车,挂挡比较麻烦,但是能做到更加精确控制。而Java 语言的特点,相当于一个自动挡的汽车,开起来更加方便,但是不能像手动档那样精确控制。 在这里手动档和自动挡相当于内存管理,C 语言中的内存申请之后,需要手动释放,它的缺点是一旦忘记释放,就会容易导致“内存泄漏”;而Java 中的内存,申请之后不需要手动释放而是通过GC。 ...原创 2020-08-07 17:34:43 · 622 阅读 · 0 评论 -
一个典型代码理解Java类加载机制以及相关面试题
类加载基本过程 加载: 1、通过一个类的全限定名获取描述此类的二进制字节流; 2、将这个字节流所代表的静态存储结构保存为方法区的运行时数据结构; 3、在java堆中生成一个代表这个类的java.lang.Class对象,作为访问方法区的入口; 链接 如果该类依赖一些其他类,链接过程就是把依赖内容进行引入; 初始化 初始化静态成员,并且执行静态代码块。 关于类加载中的常见问题 1、什么时机会触发某个类的加载 a)构造该类的实例 b)调用该类的静态属性或者方法 c)使用子类时会触发父类的加载 典型代原创 2020-08-02 18:29:12 · 475 阅读 · 0 评论 -
冯诺依曼体系结构
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 冯·诺依曼体系结构 冯·诺依曼体系结构 也是现代计算机的 硬件 体系结构,它包括五大硬件单元: 输入设备:键盘、鼠标、摄像头等 输出设备:显示器 、打印机等 存储器:内存 运算器:用于完成 算术运算 和 逻辑运算 控制器 其中 运算器 和 控制器 组成 中央处理器,也叫 CPU。 ———————————————— 功能 把需要的程序和数据送至计算机中。 必须具有长期记忆程序、数据、中间结果及最终运算结果原创 2020-06-04 23:18:49 · 1061 阅读 · 0 评论