java nio
tinysakurac
蹒跚学步的猿
展开
-
java nio selector选择器
转载自小文子的博客Selector是Java NIO中的一个组件,用于检查一个或多个NIO Channel的状态是否处于可读、可写。如此可以实现单线程管理多个channels,也就是可以管理多个网络链接。为什么使用Selector(Why Use a Selector?)用单线程处理多个channels的好处是我需要更少的线程来处理channel。实际上,你甚至可以用一个线程来处理所有的channels。从操作系统的角度来看,切换线程开销是比较昂贵的,并且每个线程都需要占用系统资源,因此暂用线程越转载 2020-10-10 10:34:57 · 141 阅读 · 0 评论 -
netty核心类-缓冲区ByteBuf
[netty核心类]–缓冲区ByteBuf 本文主要包括以下内容: 1)ByteBuf的三种类型:heapBuffer(堆缓冲区)、directBuffer(直接缓冲区)以及Composite Buffer(复合缓冲区)。2)ByteBuf的工作原理。3)ByteBuf与JDK中ByteBuffer的区别以及对比4)ByteBuf的引用计数器实现类AbstractReferenc...转载 2018-08-10 10:29:13 · 338 阅读 · 0 评论 -
java nio中的buffer
缓冲区分类 NIO中的buffer用于和通道交互,数据是从通道读入缓冲区,从缓冲区中写入通道的。Buffer就像一个数组,可以保存多个类型相同的数据。每种基本数据类型都有对应的Buffer类:缓冲区的属性 1、capacity(容量):buffer本质是一个数组,在初始化时有固定的大小,这个值就是容量。容量不可改变,一旦缓冲区满了,需要将其清空才能将继续进行读写操作。2、positi...转载 2018-08-08 13:23:20 · 135 阅读 · 0 评论 -
Linux网络io模型
linux网络编程之IO模型本文转自作者:huangguisu概念理解在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求-&...转载 2018-08-08 15:41:44 · 144 阅读 · 0 评论 -
ByteBuffer中两种申请内存方式的区别
在Java中当我们要对数据进行更底层的操作时,一般是操作数据的字节(byte)形式,这时经常会用到ByteBuffer这样一个类。ByteBuffer提供了两种静态实例方式:public static ByteBuffer allocate(int capacity) public static ByteBuffer allocateDirect(int capacity) 为什么要提...转载 2018-10-12 19:19:15 · 1473 阅读 · 0 评论 -
netty中基本组件的作用与关系
Netty中的基本组件及关系 概述 这篇文章主要是用来介绍netty中常用的一些组件,以及这些组件之间的存在关系Channel —-Socket EventLoop —-控制流,多线程处理,并发; ChannelHandler和ChannelPipeline Bootstrap 和 ServerBootstrap Channel 接口 基本的I/O操作,在基于...转载 2018-08-10 15:33:00 · 1430 阅读 · 0 评论 -
java nio三大组件
Channel Channel是什么 Channel一般翻译为通道。Java NIO的通道类似流,但又有些不同: 既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。 通道可以异步地读写。 通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。Channel的实现 FileChannel, 从文件中读写数据。 DatagramCha...转载 2018-08-08 15:45:06 · 153 阅读 · 0 评论 -
解决netty重复添加channel handler失败及其带来的反思
前言使用netty作为nio框架开发遇到了一个问题,断线重连时添加自定义channel handler失败,抛出异常ChannelPiplineException:"xxx class is not a @Sharable handler, so can't be added or removed multiple times字面意思上是我们自定义的channel handler不是一个共...原创 2019-07-23 11:09:14 · 2522 阅读 · 0 评论 -
简单理解一个dubbo服务的完整调用过程
转载自dubbo官网感受学习业内优秀开源分布式框架的底层rpc实现原创 2019-08-02 10:43:33 · 4425 阅读 · 0 评论