彭德崇's Blogs

公众号:不止于Java github:https://github.com/cyxpdc?tab=repositories 邮箱:1142439493@qq.com

《Netty深入剖析》之四:新连接接入

4 Netty新连接接入 新连接接入处理逻辑: 4.1 检测新连接 流程:在3.3的processSelectedKeys方法里:创建NioSocketChannel,封装了NIO的SocketChannel while循环条件为allocHandler.continueReading()是用...

2019-08-31 23:05:13

阅读数 12

评论数 0

《Netty深入剖析》之三:NioEventLoop

3 NioEventLoop 3.1 NioEventLoop创建 流程:深入到MultithreadEventExecutorGroup的构造方法 接下来分析这三个子过程 3.1.1 ThreadPerTaskExecutor 作用 每一次执行任务的时候,都会创建一个线程(execute方...

2019-08-31 21:32:05

阅读数 12

评论数 0

《Netty深入剖析》一、二:Netty基本组件和Netty服务端启动

1 Netty基本组件 1.1 网络通信之Netty模型 NioEventLoop NioEventLoop#run方法对应着Bio的while(true)轮询,里面存放业务逻辑代码; 对应着两个Thread:一个是服务端的监听,一个是对客户端的读写 用法: 创建两个NioEventLoop...

2019-08-31 11:17:51

阅读数 31

评论数 0

JVM之问:JVM内部相关实现

深入拆解Java虚拟机 1 为什么 Java 要在虚拟机里运行? 1.Java 作为一门高级程序语言,它的语法非常复杂,抽象程度也很高。因此,直接在硬件上运行这种复杂的程序并不现实:C++的策略是直接编译成目标架构的机器码,Java的策略是编译成一个虚拟架构的机器码。这个虚 拟架构可以有物理实现,...

2019-08-30 10:58:00

阅读数 7

评论数 0

JVM学习之三:虚拟机类加载机制

《深入理解Java虚拟机》 3 虚拟机类加载机制 3.1 概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型 在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的; 这种策略虽然会令类加载时稍微增...

2019-08-30 10:54:24

阅读数 10

评论数 0

JVM学习之二:垃圾收集(内存回收策略)与内存分配策略

《深入理解Java虚拟机》 深入拆解Java虚拟机 2 垃圾收集(内存回收策略)与内存分配策略 程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭; 栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作, 每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(...

2019-08-30 10:52:42

阅读数 8

评论数 0

JVM学习之一:Java内存区域与内存溢出异常

《深入理解Java虚拟机》 1 Java内存区域与内存溢出异常 1.1 运行时数据区域 Java运行时,虚拟机内存存放的东西: 1.1.1 程序计数器(Program Counter Register) 作用 可以看作是当前线程所执行字节码的行号指示器。分支、循环、跳转、异常处理、线程恢复等...

2019-08-30 10:47:33

阅读数 12

评论数 0

Java并发(十二)并发模型

极客时间:Java并发编程实战 1 Actor模型:面向对象原生的并发模型 概念 Actor模型本质上是一种计算模型,基本的计算单元称为Actor,Actor之间通过消息进行通信; 在Actor模型中,所有的计算都是在Actor中执行的。 在面向对象编程里面,一切都是对象; 在Actor模型里...

2019-08-23 14:45:41

阅读数 8

评论数 0

Java并发(十一)并发案例

极客时间:Java并发编程实战 1 高性能限流器GuavaRateLimiter 令牌桶算法:记录一个下一令牌产生的时间,并动态更新它,就能够轻松完成限流功能 与信号量区别:信号量是“一次性可以有多少个线程一起执行”,限流器是“每秒最多允许几个请求通过”“1个请求/xxx秒” 申请令牌时调用acq...

2019-08-23 14:44:45

阅读数 13

评论数 0

Java并发(十)并发设计模式

极客时间:Java并发编程实战 1 Immutability模式 将一个类所有的属性都设置成final的,并且只允许存在只读方法,那么这个类基本上就具备不可变性了。 更严格的做法是这个类本身也是final的,也就是不允许继承。因为子类可以覆盖父类的方法,有可能改变不可变性 所以推荐在实际工作中,使...

2019-08-23 14:43:05

阅读数 8

评论数 0

Java并发(九)生产者·消费者实现

1.synchronized实现 队列 static class MyBlockingQueue<E> { private Queue<E> queue = null; private int limit; publ...

2019-08-23 14:38:17

阅读数 6

评论数 0

Java并发(八)线程知识点

优先级高的线程分配时间片的数量要多于优先级低的线程 设置线程优先级时,针对频繁阻塞(休眠或者I/O操作)的线程需要设置较高优先级; 而偏重计算(需要较多CPU时间或者偏运算)的线程则设置较低的优先级; 确保处理器不会被独占 线程优先级不能作为程序正确性的依赖,因为操作系统可以完全不用理会Java线...

2019-08-23 14:37:09

阅读数 13

评论数 0

Java并发(七)异步执行任务之手写线程池、定时任务、CompletableFuture

手写 表示子任务: public interface Callable<V> { V call() throws Exception; } 表示异步调用的结果: public interface MyFuture <V> { ...

2019-08-23 14:34:41

阅读数 18

评论数 0

Java并发(六)显示锁和StampedLock

显式锁 可以解决synchronized的限制 主要接口和类: 锁接口Lock,主要实现类是ReentrantLock 读写锁接口ReadWriteLock,主要实现类是ReentrantReadWriteLock 相比synchronized,显式锁支持以非阻塞方式获取锁、可以响应中断、可以...

2019-08-23 14:29:22

阅读数 7

评论数 0

Java并发(五)synchronized

synchronized 1 知识点 synchronized可以用于修饰类的实例方法、静态方法和代码块 synchronized实例方法实际保护的是同一个对象的方法调用,即当前实例对象,即this,this对象有一个锁和一个等待队列(任意对象都有一个锁和等待队列,还有另一个等待队列,表示条件队...

2019-08-23 14:26:21

阅读数 7

评论数 0

Java并发(四)并发容器

并发容器 写时拷贝技术的容器类 写时拷贝是解决并发问题的一种重要思路 有两个简单的类CopyOnWriteArrayList和CopyOnWriteArraySet 场景: 不可变对象的写操作:如String的replace方法,其并没有更改原字符串里面value[]数组的内容,而是创建了一个新字...

2019-08-23 14:20:24

阅读数 7

评论数 0

Java并发(三)并发工具

并发工具1:同步协作工具 读写锁ReentrantReadWriteLock 信号量Semaphore 倒计时门栓CountDownLatch 循环栅栏CyclicBarrier 交换者Exchanger 基于AQS实现 在一些特定的同步协作场景中,相比使用最基本的wait/...

2019-08-23 14:15:58

阅读数 10

评论数 0

Java并发(二)Java内存模型

3 Java内存模型 本质上可以理解为,Java 内存模型规范了 JVM 如何提供按需禁用缓存和编译优化的方法。 具体来说,这些方法包括 volatile、synchronized 和 final 三个关键字,以及六项 Happens-Before 规则 Happens-Before为语义增...

2019-08-23 14:09:16

阅读数 16

评论数 0

Java并发(一)并发基础

https://www.cnblogs.com/jinshuai86/p/9226164.html Java编程的逻辑 Java并发编程的艺术 极客时间:Java并发编程实战 Java并发基础知识 并发bug源头 缓存导致的可见性问题 线程切换带来的原子性问题 编译优化带来的有序性...

2019-08-23 13:58:51

阅读数 24

评论数 0

Collections源码解析

集合类关系: 1 相关方法 1.1 针对List接口的二分查找 //一个要求List的每个元素实现Comparable接口,另一个不需要,但要求提供Comparator。 public static <T> int binarySearch(List&...

2019-08-04 16:46:27

阅读数 40

评论数 0

提示
确定要删除当前文章?
取消 删除