首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
红烧不是清蒸
掘友等级
关注
私信
获得徽章 0
动态
文章
专栏
沸点
收藏集
0
关注
赞
1.6K
文章 1.5K
沸点 27
资讯 0
赞
1.6K
关注
返回
|
搜索文章
文章
热门
最新
红烧不是清蒸
4年前
Java
JVM
后端
Java NIO分析(10): JVM堆外内存利用改进: DirectBuffer详解
前面我们详细讲了Java NIO分析(8): 高并发核心Selector详解和Java NIO分析(9): 从BSD socket到SocketChannel, 分别是NIO的事件分发器和非阻塞处理器. 为了支持Channel的双向读写和Scatter/Gather操作,我们还…
2537
16
1
红烧不是清蒸
4年前
Java
后端
Java NIO分析(9): 从BSD socket到SocketChannel
前面我们讲了高并发核心Selector的源码分析,看到其对操作系统I/O多路复用的简单封装。 有了I/O多路复用之后,我们还需要非阻塞的socket读写操作. 因为内核告诉你A连接有数据可读,你想要读1K, 事实上只读到了0.5K, 如果使用传统的 socket API, 那么…
1596
14
评论
红烧不是清蒸
4年前
Java
后端
Java NIO分析(8): 高并发核心Selector详解
有了感性认识之后,来看看Selector的底层是如何实现的。 笔者下载得是openjdk8的源码, 画出类图 比较清晰得看到,openjdk中Selector的实现是SelectorImpl, 然后SelectorImpl又将职责委托给了具体的平台,比如图中框出的linux2.…
4036
29
3
红烧不是清蒸
4年前
Java
Java NIO分析(7): NIO核心之Channel,Buffer和Selector简介
在NIO的API中,Channel就是实现非阻塞的组件,而事件分发(Dispatcher)使用的是Selector组件, 在传统的I/O流(Stream)是有方向的,而NIO支持双向读写,这样就需要将流中的数据读取到某个缓冲组件里, 即Buffer组件. Buffer组件还有个…
1747
19
评论
红烧不是清蒸
4年前
Java
后端
Java NIO分析(6): 从BIO到NIO-设计和概念
前面介绍了Unix的I/O模型以及多路复用的c实现,为什么要介绍这些呢? 因为JVM是用c++写的,JDK的native方法也都是用c写的,最后它们调用 的还是操作系统底层的api,所以了解一些关键的底层原理还是有必要的。 讲Java的NIO之前,先讲些基础知识. 阻塞和非阻塞…
521
17
评论
红烧不是清蒸
4年前
Java
后端
Java NIO分析(5): I/O多路复用之epoll系统调用
poll系统调用相比于select主要解决了文件描述符的数量限制,但是在高并发场景下没有解决根本问题: fd数组整体在内核空间和用户空间之间拷贝 遍历整个fd数组找事件浪费资源 这俩性能问题在Banga在1999年写了篇论文A Scalable and Explicit Ev…
2545
15
2
红烧不是清蒸
4年前
Java
后端
Java NIO分析(4): I/O多路复用之poll系统调用
文件描述符集(fd_set)这种值-结果参数的api设计不是很好, select系统调用的时候要分别传读set,写set,更多事件不好细分 poll系统调用使用了pollfd数据结构来表示事件数组,没有了fd_setsize的限制,同时支持更多的事件类型 pollfd的结构是:…
652
15
评论
红烧不是清蒸
4年前
Java
后端
Java NIO分析(3): I/O多路复用之select系统调用
以及为什么需要它。今天讲广受各大内核支持的select系统调用,select允许进程 指定内核等待1个或者多个事件的任何一个发生, 并且只在有它们发生之后或者等待一段时间后才唤醒进程。 使用select, 我们即使应用进程里只有1个线程也能够接受多个连接并且做出处理, 因为应用…
682
16
评论
红烧不是清蒸
4年前
算法
后端
深入浅出垃圾回收(二)Mark-Sweep 详析及其优化
在上一篇文中介绍的追踪类(tracing)GC 较引用计数(Reference Counting)性能更高,但原生的追踪类 GC 也有其自身缺点,需要对其进行改造才能真正的名副其实。这篇文章就来介绍与之相关的内容。 为了后面叙述方便,首先明确以下几个名词的含义: Collect…
621
11
评论
红烧不是清蒸
4年前
RabbitMQ
WebSocket
服务器
基于RabbitMQ实现异步消息通知处理
一个简单的业务场景如:某web页面存在多个相互关联的异步获取数据展示的区域,如何优雅的实现一个区域的数据更新时异步通知其它区域进行数据刷新? 图1 业务场景 当列表数据操作状态变更时,让上面统计区域自动更新。 常见实现方式是,在“操作”方法中调用“刷新统计数据”的方法,但这种…
3626
35
评论
下一页
个人成就
优秀创作者
文章被点赞
12,875
文章被阅读
792,347
掘力值
38,331
关注了
43
关注者
5,535
收藏集
0
关注标签
1
加入于
2017-08-04