Reactor&Proactor&Actor模型

服务端的线程模型无论是Reactor模型还是Proactor模型,对于支持多连接的服务器,一般可以总结为2种fd和3种事件,如下图:2种fdlistenfd:一般情况,只有一个。用来监听一个特定的端口(如80)。connfd:每个连接都有一个connfd。用来收发数据。3种事件listenfd进行a

字节码分析synchronized原理

同步控制指令Java虚拟机支持两种同步结构:方法级的同步和方法内部一段指令序列的同步,这两种同步都是使用monitor来支持的方法级的同步方法级的同步:是隐式的,即无须通过字节码指令来控制,它实现在方法调用和返回操作之中。虚拟机可以从方法常量池的方法表结构中的ACC_SYNCHRONIZED访问标志

Java线程是用户线程还是内核线程?

前置知识:用户线程内核不可见测试代码import java.util.concurrent.TimeUnit;/** * @author islandempty * @since 2021/5/16 **/public class Test { public static void main(

破坏双亲委派模型

如何打破双亲委派模型1.自定义类加载器双亲委派模型源码采用递归 向上委托,向下查找 protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {

AQS为什么用双向链表

众所周知,AQS内的同步队列为双向链表,但为什么用双向链表呢网上大多数回答是这样的因为链表移除和添加比较方便,只需要改动prev和next节点的指向即可,移除和添加都只需要操作一次,时间复杂度为O(1)。如果使用数组去实现,随着数据量的增加每次操作需要移动的次数也会更重。其实如果仅仅是为了方便添加和

AQS源码解析

好文推荐

JavaJse高级语言的编译:链接及装载过程介绍Java动态追踪技术探究Java魔法类:Unsafe应用解析红黑树深入剖析及Java实现高性能队列——Disruptor集合Java 8系列之重新认识HashMapJvm基础深入解析String#intern字节码字节码增强技术探索GC从实际案例聊聊J

Netty入门

Netty工作原理示意图说明Netty 抽象出两组线程池 BossGroup 专门负责接收客户端的连接,WorkerGroup 专门负责网络的读写BossGroup 和 WorkerGroup 类型都是 NioEventLoopGroupNioEventLoopGroup 相当于一个事件循环组,这个

8锁现象

8锁现象:深刻理解锁1.多个线程使用一把锁import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;publi
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×