
jdk
文章平均质量分 81
泮小俊233
技术爱好者
展开
-
jdk的nio之selector(1)
看了netty源码后发现,它不过是封装在jdk的nio之上的框架,虽然大致猜到nio的原理,但还是忍不住要去jdk底层一探究竟。要用selector,第一句话无非Selector selector = Selector.open();但里面如何实现的? public static Selector open() throws IOException { return Sele...原创 2018-05-22 21:51:59 · 406 阅读 · 0 评论 -
jdk的nio之selector(2)
上篇博文分析了selector的建立,在这之后selector跟ServerSocketChannel,SocketChannel配合使用,在这里我将会介绍在selector.open();之后,我们以服务器端为切入点,重点关注下面两个方法的实现 ServerSocketChannel serverSocketChannel = ServerSocketChannel.ope...原创 2018-05-23 16:14:30 · 387 阅读 · 0 评论 -
jdk的nio之selector(3)
来看看selector最核心的select()方法吧我们之前分析了Selector默认是WindowSelectorImpl的一个实例,调用selector(timeout),timout是给Selector设置的时间参数,之后调用lockAndDoSelector,lockAndDoSelector方法核心就是调用抽象方法doSelect,此时加了synchronize同步。我们看下子类的doS...原创 2018-05-24 13:21:17 · 464 阅读 · 0 评论 -
jdk1.8中ConcurrentHashMap
ConcurrentHashMap我们先看其构造方法,主要是对内部的大小进行配置 public ConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel) { if (!(loadFactor > 0.0f) || ...原创 2018-06-12 15:28:00 · 346 阅读 · 0 评论 -
jdk源码之ThreadLocal
ThreadLocal算是为多线程解决并发问题提供了一种新的思路,为了更好地使用它,读其优秀的实现。其构造方法是空的,那么直接看其set()方法 public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (ma...原创 2018-07-02 21:00:46 · 297 阅读 · 0 评论