摘要: 一、BIO的理解 首先我们通过通信模型图来熟悉下BIO的服务端通信模型:采用BIO通信模型的服务端,通常由一个独立的Acceptor线程负责监听客户端的连接,它接收到客户端的连接请求之后为每个客户端创建一个新的线程进行链路处理,处理完成之后,通过输出流返回应答给客户端,线程销毁。这就是典型的一请求一 阅读全文
posted @ 2018-08-17 16:35 kaleidoscopic 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 首先明确: 1)TCP滑动窗口分为接受窗口,发送窗口滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的。对ACK的再认识,ack通常被理解为收到数据后给出的一个确认ACK,ACK包含两个非常重要的 阅读全文
posted @ 2018-08-17 15:47 kaleidoscopic 阅读(1902) 评论(0) 推荐(0) 编辑
摘要: TCP 协议是一种面向连接的,为不同主机进程间提供可靠数据传输的协议。TCP 协议假定其所使用的网络栈下层协议(如IP 协议)是非可靠的,其自身提供机制保证数据的可靠性传输。在目前的网络栈协议族中,在需要提供可靠性数据传输的应用中,TCP 协议是首选的,有时也是唯一的选择。TCP 协议是在最早由Ce 阅读全文
posted @ 2018-08-17 14:28 kaleidoscopic 阅读(1805) 评论(0) 推荐(0) 编辑
摘要: 平衡二叉树(Balanced binary tree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树。 定义:平衡二叉树或为空树,或为如下性质的二叉排序树: (1)左右子树深度之差的绝对值不超过1; (2)左右子树仍然为 阅读全文
posted @ 2018-08-17 13:39 kaleidoscopic 阅读(765) 评论(0) 推荐(0) 编辑
摘要: [原文链接] 一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的Reen 阅读全文
posted @ 2018-08-16 20:17 kaleidoscopic 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 匿名管道 管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 命名管道 命名管道 (named pipe) 也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 信号量 信号量( semophore ) 是一个计数器,可以用来控 阅读全文
posted @ 2018-08-16 18:37 kaleidoscopic 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 本文主要讲述Java类的加载机制,主要包括类加载器、加载过程、初始化时机。 一、类加载器 1、ClassLoader抽象类 类加载器的任务就是根据一个类的全限定名来读取此类的二进制字节流到JVM内部,然后转换为一个与目标类对应的java.lang.Class对象实例。 如果需要支持类的动态加载或需要 阅读全文
posted @ 2018-08-16 17:32 kaleidoscopic 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 图解排序算法(一)之3种简单排序(选择,冒泡,直接插入) 图解排序算法(二)之希尔排序 图解排序算法(三)之堆排序 图解排序算法(四)之归并排序 图解排序算法(五)之快速排序 排序算法-八大排序实现和性能比较 图解排序算法(一)之3种简单排序(选择,冒泡,直接插入) 图解排序算法(二)之希尔排序 图 阅读全文
posted @ 2018-08-16 10:43 kaleidoscopic 阅读(193) 评论(0) 推荐(0) 编辑
摘要: Redis源码剖析和注释(一) 链表结构 Redis源码剖析和注释(二) 简单动态字符串 Redis源码剖析和注释(三) Redis 字典结构 Redis源码剖析和注释(四) 跳跃表(skiplist) Redis源码剖析和注释(五) 整数集合(intset) Redis源码剖析和注释(六) 压缩列 阅读全文
posted @ 2018-08-15 20:17 kaleidoscopic 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 最大感受,无论从设计还是源码,Redis都尽量做到简单,其中运用到的原理也通俗易懂。特别是源码,简洁易读,真正做到clean and clear, 这篇文章以unstable分支的源码为基准,先从大体上整理Redis的对象类型以及底层编码。 当我们在本文中提到Redis的“数据结构”,可能是在两个不 阅读全文
posted @ 2018-08-15 18:49 kaleidoscopic 阅读(464) 评论(0) 推荐(0) 编辑