Netty之旅总览
一篇文章入门Netty ByteBuf详解 ChannelHandler流程详解 EventLoop流程详解 Bootstrap使用详解 ChannelHandler做测试 数据格式转换与自带Channel工具 Netty Hello wo...
一篇文章入门Netty ByteBuf详解 ChannelHandler流程详解 EventLoop流程详解 Bootstrap使用详解 ChannelHandler做测试 数据格式转换与自带Channel工具 Netty Hello wo...
可靠性、协议格式、tcpDump 可靠性、协议格式、tcpDump 处理连接 处理连接 数据传输 数据传输 超时处理 超时处理 局限性与定时器 局限性 定时器 文章永久链接:https://tech.souyunku.com/47135
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
思路:在包含问题的解空间中,按照深度优先搜索的策略,从根节点出发深度探索解空间树,当探索到某一节点时,先判断该节点是否包含问题的解,如果包含,就从该节点触发继续探索下去,如果不包含该节点的解,则逐层向其祖先节点回溯。 示例 组合总和:给定一...
方法区的概念 根据JVM的规范,方法区用来存储类的结构,比如运行时常量池,字段和方法数据,方法和构造函数的代码,以及类和实例初始化,接口初始化中使用的一些特殊方法。规范把方法区从逻辑上看做是属于堆的一部分,不同的实现可以选择是否要对这块代码...
wait源码实现如下 //TRAPS表示是否有异常 void ObjectSynchronizer::wait(Handle obj, jlong millis, TRAPS) { if (UseBiasedLocking) { //如果是...
为什么需要偏向锁? 当多个处理器同时处理的时候,通常需要处理互斥的问题。 一般的解决方式都会包含acquire和release这个两种操作,操作保证,一个线程在acquire执行之后,在它执行release之前,其它线程不能完成acquir...
以 GC safe-point引入 GC如何找到不可用的对象?编写代码的时候是可以知道对象不可用的,但对于程序来说,需要一定的方式来知晓,可用方法比如:编译分析,引用计数,和对象是否可达 可达性分析 mutator 含义:,一般GC执行完之...
LockSupport是用来创建locks的基本线程阻塞基元,比如AQS中实现线程挂起的方法,就是park,对应唤醒就是unpark。JDK中有使用的如下 LockSupport提供的是一个许可,如果存在许可,线程在调用 park的时候,会...
unsafe中对应拥有三个方法 compareAndSwapObject ,compareAndSwapInt和compareAndSwapLong ,他们都被标记为native compareAndSwapObject 它的核心实现为 o...
线程安全的概念 什么时候线程不安全?怎样做到线程安全?怎么扩展线程安全的类? java对线程安全的支持 java 对线程安全支持有哪些? java 中的线程池 Executors的使用与ThreadPoolExecutor java中线程池...