随笔分类 - 操作系统
摘要:重入, 中断, 公平, 读写锁 标签(空格分隔): 操作系统 可重入锁 / 不可重入锁 可重入锁 Wikipedia: 若一个程序或子程序可以" 在任意时刻被打断然后操作系统调度之行另一端代码, 这段代码又调用了该子程序而不会出错 " 则称其为可重入锁. 即当该子程序正在运行时, 执行线程可以再次进
阅读全文
摘要:三次握手和四次挥手 序号: seq序号, 占32位, 用来标识从TCP源端向目地端发送的字节流, 发起方发送数据的时候对此进行标记。 确认序号: ack序号占32位,只有ACK标志位为1的时候, 确认序号字段才有效,ack=seq+1. 标志位: 共6个,即URG, ACK, PSH, RST, S
阅读全文
摘要:三次握手和四次挥手 序号: seq序号, 占32位, 用来标识从TCP源端向目地端发送的字节流, 发起方发送数据的时候对此进行标记。 确认序号: ack序号占32位,只有ACK标志位为1的时候, 确认序号字段才有效,ack=seq+1. 标志位: 共6个,即URG, ACK, PSH, RST, S
阅读全文
摘要:CAS / ABA 标签(空格分隔): 操作系统 1. CAS 解决 Volatile 不保证原子性的问题 [Volatile不保证原子性的解决方案][1], 在其中我们可以看到我们通过 , 获取值并且将其+1, 重点在于 通过 乐观锁 的方法, 相当于实现了原子性的操作. 2. CAS 导致的 A
阅读全文
摘要:Volatile 标签(空格分隔): 进程/线程 操作系统 Java虚拟机提供的轻量级的同步机制 1. 保证可见性 不同的线程进入共享内存中读取数据之后, 在各自的工作空间对数据一通操作, 然后写入共享内存中, 这个时候因为共享内存的数据改变, 这个时候会通知其他读取该共享变量的线程, 通知该数据已
阅读全文
摘要:Java内存模型(JMM) 标签(空格分隔): Java 架构 线程/进程 JMM 本身是一种抽象的概念并不真实存在, 它描述的是一组规则或规范, 通过这组规范定义了程序中各个变量(包括实例字段, 静态字段和构成数组对象的元素)的访问方式. JMM关于同步的规定. 1. 线程解锁之前, 必须把共享变
阅读全文
摘要:Java线程 标签(空格分隔): 面试 线程/进程 1. sleep join yield有什么区别 多线程的五种状态: 新建状态, 就绪状态, 运行状态, 阻塞状态, 死亡状态. 新建状态: 当new 一个线程的时候, 程序还没有运行其中的` 代码. 就绪状态: 一个新创建的线程并不会自动开始,
阅读全文
摘要:自旋锁 标签(空格分隔): 操作系统 1. 什么是自旋锁 自旋锁是为了实现保护 共享资源 而提出的一种机制, 其实自旋锁和互斥锁比较类似, 他们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就说,在任何时刻最多只能有一个执行单元获得锁。 2. 调度机
阅读全文
摘要:CAP定理和BASE理论 标签(空格分隔): 操作系统 CAP定理 CAP定理: 一个分布式系统最多只能满足一致性 (Consistency), 可用性(Availability)和分区容错性(Partition tolerance)其中的两种. 一致性(Consistency) all nodes
阅读全文
摘要:垃圾回收 标签(空格分隔): Java 那些对象需要回收 JVM内存结构主要包括: 方法区, 堆区, 程序计数器, 本地方法区, 虚拟机栈. 其中的程序计数器, 本地方法区, 虚拟机栈这三个区域是的生命周期随线程生灭, 所以不需要过多考虑这方面的GC问题. 引用 在JDK1.2之后, Java对引用
阅读全文

浙公网安备 33010602011771号