Java并发机制的底层实现原理(volatile) Java中所使用的并发机制依赖于JVM的实现和CPU的指令。在多线程并发编程中 synchronized 和 volatile 都扮演着重要的角色。 volatile的应用volatile 是轻量级的 synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。 如果volatile变量修饰符使用适当的话,它比 2019-03-05 多线程 #JAVA #多线程
Java并发解决方案 Java并发编程的缺陷 上下文切换带来的CPU开销 死锁 物理硬件的限制 软件资源的限制 为什么需要并发?并发其实是一种解耦合的策略,这种策略帮助我们把做什么(目标)和什么时候做(时机)分开。优点是可以明显改进应用程序的吞吐量(获得更多的CPU调度时间)和结构(程序有多个部分在协同工作)。Servlet容器就是采用单实例多线程的工作模式,来处理并发问题。 2019-03-04 多线程 #JAVA #多线程
二、随机事件间的运算律 基本定律:幂等律:A∪A = A,A∩A = A交换律:A∪B = B∪A,A∩B = B∩A结合律:(A∪B)∪C = A∪(B∪C),(A∩B)∩C = A∩(B∩C)分配律:A∩(B∪C) = (A∩B)∪(A∩C),A∪(B∩C) = (A∪B)∩(A∪C) De·Morgan(德·摩根)定律:非(A 且 B) 2019-01-09 数学 #概率论
一、概率与随机事件 随机试验(Experiment)定义:对事物的某一特征的观察。 其典型的例子有: **E1**:抛一枚硬币,观察正面 H(Heads)、反面 T(Tails)出现的情况。 **E2**:抛一颗骰子,观察出现的点数。 **E3**:观察某一时间段通过某一路口的车辆数。 **E4**:观察某一电子元件的寿命。 **E5**:观察某地区一昼夜的最低温度和最高温度。 2019-01-07 数学 #概率论
Nginx高级 一、Nginx 的反向代理 优势 隔离内部服务器,提高安全性。 可以在代理服务器上增加缓存,减少后端服务器的压力,提高性能。 方便横向扩展。 AIO(异步非阻塞)动静分离,提高性能。 2018-11-12 Nginx #Nginx
Nginx基础 一、什么是 Nginx?Nginx 是一款性能极高的 HTTP 反向代理服务器,Nginx 官方发布的测试数据显示,支持 10000 非活动的连接只需 2.5M 内存的性能消耗。同时也是一个邮件服务器。 2018-11-11 Nginx #Nginx
七、理解GC日志 每一种收集器的日志形式都是由它们自身的实现所决定的,换而言之,每个收集器的日志格式都可以不一样。但虚拟机设计者为了方便用户阅读,将各个收集器的日志都维持一定的共性。 2018-11-08 JVM #JAVA #JVM
六、垃圾收集器 收集算法是内存回收的方法论,而 垃圾收集器就是内存回收的具体实现 。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。 2018-11-08 JVM #JAVA #JVM
五、HotSpot的算法实现 枚举根节点以可达性分析中从GC Roots节点找引用链这个操作为例, 可作为GC Roots的节点主要在全局性的引用(如常量或类静态属性)与执行上下文(例如栈帧中的本地变量表)中,现在很多应用仅仅方法区就有数百兆,如果要逐个检查这里面的引用,那么必然会消耗很多时间。 另外,可达性分析对执行时间的敏感还体现在GC停顿上,因为这项分析工作必须在一个能确保一致性的快照中进行——这里“一致性”的意思是指在 2018-11-08 JVM #JAVA #JVM