阶段一:高性能编程
文章平均质量分 97
本专题包含:1.多线程并发编程(Java多线程基础知识、线程安全问题);
2.高并发网络编程(Java NIO网络编程、Netty、网络编程项目实战);
3.Java系统性能调优(JVM性能优化、系统综合优化);
4.互联网大厂案例;
maxleader
这个作者很懒,什么都没留下…
展开
-
BIO与NIO剖析
BIO - 阻塞的含义BIO代码示例服务端:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.ServerSo...原创 2020-03-25 16:35:34 · 150 阅读 · 0 评论 -
TCP / UDP协议
OSI网络七层模型各层的主要功能传输控制协议TCP主要特点:(1)基于流的方式;(2)面向连接;(3)可靠通信方式;(4)在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;(5)通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。TCP握手机制用户数据报协议UDPUDP协议简介UDP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输...原创 2020-03-16 22:08:20 · 528 阅读 · 0 评论 -
AQS(抽象队列同步器)详解
同步锁的本质 —— 排队同步的方式:独享锁 - 单个队列窗口,共享锁 - 多个队列窗口;抢锁的方式:插队抢(非公平锁)、先来后到抢(公平锁);没捡到锁的处理方式:快速尝试多次(CAS自旋锁)、阻塞等待;唤醒阻塞线程的方式(叫号器):全部通知、通知下一个;AQS概念资源占用流程手写抽象队列同步器import java.util.Iterator;import java.util...原创 2020-02-17 14:14:31 · 552 阅读 · 0 评论 -
线程安全之Lock和synchronized的运用
Java中锁的概念几种重要的锁实现方式:synchronized、ReentrantLock、ReentrantReadWriteLocksynchronized的概念原创 2020-02-16 22:19:12 · 155 阅读 · 0 评论 -
线程安全的问题
在上一节中主要讲了JVM内存模型和线程安全的可见性问题,本节重点讲解线程安全的原子操作;竞态条件与临界区代码示例public class IncrDemo { public int i = 0; public void incr() { i++; //临界区 }}共享资源不可变对象原子操作定义CAS机制J.U.C包内的原子操作封...原创 2020-02-07 20:27:37 · 94 阅读 · 0 评论 -
JVM内存模型详解
JVM运行时数据区(https://blog.csdn.net/maxleader/article/details/104098513)从内存结构到内存模型多线程中的问题所见非所得;肉眼无法检测程序准确性;不同的运行平台有不同的表现;错误很难重现;工作内存缓存指令重排序Java内存模型含义Shared Variables共享变量描述线程操作的定义程序顺序:...原创 2020-02-03 23:24:56 · 215 阅读 · 0 评论 -
线程池的实现原理和应用
为什么要使用线程池线程池的原理 - 概念线程池AIP - 接口定义和实现类线程池AIP - 方法定义ExecutorServiceScheduledExecutorService线程池AIP - Executors工具类线程池原理 - 任务executor过程有关线程数量代码示例import java.util.List;import java.util.co...原创 2020-01-31 22:00:55 · 166 阅读 · 0 评论 -
线程封闭 - ThreadLocal和栈封闭
线程封闭的概念ThreadLocalThreadLocal是Java里一种特殊的变量代码示例/** 线程封闭示例 */public class Demo7 { /** threadLocal变量,每个线程都有一个副本,互不干扰 */ public static ThreadLocal<String> value = new ThreadLocal<>();...原创 2020-01-29 14:49:52 · 110 阅读 · 0 评论 -
线程通信
线程通信的方式文件共享变量共享线程协作 - JDK API被弃用的suspend / resume被弃用的主要原因是:容易写出死锁代码!所以用 wait / nitify 和 park / unpark 机制对它进行替代。suspend / resume死锁示例wait / nitify机制wait / nitify正常执行与死锁park / unpark机制...原创 2020-01-29 14:19:10 · 247 阅读 · 0 评论 -
内存屏障和CPU缓存
CPU性能优化手段 - 缓存多级缓存缓存同步协议CPU性能优化手段 - 运行时指令重排序CPU缓存和CPU运行时指令重排序的2个问题:内存屏障原创 2020-01-29 11:14:09 · 159 阅读 · 0 评论 -
线程的状态与线程终止
一、线程的状态线程的6种状态线程运行状态图代码示例/** * 示例2 - 多线程运行状态切换示例 <br/> */public class Demo2 { public static Thread thread1; public static Demo2 obj; public static void main(String[] args) throws Ex...原创 2020-01-28 21:47:11 · 346 阅读 · 0 评论 -
Java程序运行原理分析
一、JVM原理class文件内容JVM运行时数据区方法区堆内存区虚拟机栈本地方法栈程序计数器二、程序运行分析示例代码如下/** * 示例1 - JAVA程序执行分析 */public class Demo1 { public int x; public int sum(int a, int b) { return a + b; } publi...原创 2020-01-28 14:03:33 · 212 阅读 · 0 评论