摘要: 一. 耗时任务 static final EventExecutorGroup group = new DefaultEventExecutorGroup(16); childHandler(new ChannelInitializer<SocketChannel>() { static final 阅读全文
posted @ 2017-11-22 15:05 上台阶 阅读(6348) 评论(0) 推荐(0) 编辑
摘要: 1. 背景 1.1. Java线程模型的演进 1.1.1. 单线程 时间回到十几年前,那时主流的CPU都还是单核(除了商用高性能的小机),CPU的核心频率是机器最重要的指标之一。 在Java领域当时比较流行的是单线程编程,对于CPU密集型的应用程序而言,频繁的通过多线程进行协作和抢占时间片反而会降低 阅读全文
posted @ 2017-11-22 13:42 上台阶 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 原文链接:应用服务器中对JDK的epoll空转bug的处理 前面讲到了epoll的一些机制,与select和poll等传统古老的IO多路复用机制的一些区别,这些区别实质可以总结为一句话, 就是epoll将重要的基于事件的fd集合放在了内核中来完成,因为内核是高效的,所以很多关于fd事件监听集合的操作 阅读全文
posted @ 2017-11-22 10:03 上台阶 阅读(544) 评论(0) 推荐(0) 编辑