摘要: 原文链接:http://mechanitis.blogspot.com/2011/07/dissecting-disruptor-why-its-so-fast_22.html 需FQ 计算机入门 我喜欢在LMAX工作的原因之一是,在这里工作让我明白从大学和A Level Computing所学的东 阅读全文
posted @ 2016-08-15 18:55 Geason崔 阅读(841) 评论(2) 推荐(0) 编辑
摘要: 为什么Disruptor不使用队列来实现RingBuffer 队列有两个指针,一个指向队头,一个指向队尾。如果有超过一个生产者想要往队列里放东西,尾指针就将成为一个冲突点,因为有多个线程要更新它。如果有多个消费者,那么头指针就会产生竞争,因为元素被消费之后,需要更新指针,所以不仅有读操作还有写操作了 阅读全文
posted @ 2016-08-19 12:15 Geason崔 阅读(973) 评论(0) 推荐(0) 编辑
摘要: 这篇文章没有详细介绍 NIO 的概念,对于 NIO 不了解的同学,可根据自己需要,阅读这篇介绍 NIO 的博客 io.mycat.net.NIOAcceptor NIOAcceptor负责处理客户端(指连接MyCAT以访问数据库的程序)的连接请求。 NIOAcceptor中持有一个Selector字 阅读全文
posted @ 2016-08-17 18:45 Geason崔 阅读(3722) 评论(1) 推荐(2) 编辑
摘要: 博客园对移动端支持的比较差,尝试搬到CSDN,也许会同步更新 阅读全文
posted @ 2016-08-15 19:33 Geason崔 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 一、重量级锁 一、重量级锁 Java中,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的 阅读全文
posted @ 2016-08-15 19:27 Geason崔 阅读(1497) 评论(0) 推荐(0) 编辑
摘要: 初识NIO: 在 JDK 1. 4 中 新 加入 了 NIO( New Input/ Output) 类, 引入了一种基于通道和缓冲区的 I/O 方式,它可以使用 Native 函数库直接分配堆外内存,然后通过一个存储在 Java 堆的 DirectByteBuffer 对象作为这块内存的引用进行操 阅读全文
posted @ 2016-08-15 19:21 Geason崔 阅读(70872) 评论(3) 推荐(10) 编辑
摘要: KMP算法是一种改进的字符串匹配算法。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。 next()函数的作用,就是在模式串中,找出最长的相同前缀,形成一张跳转表。 跳转表的用途是, 阅读全文
posted @ 2016-08-15 19:21 Geason崔 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 之前写过一个项目,好久没更新了,最近翻起以前的代码,发现在这里报了一个错。(现在转到Intellij了,从前在Eclipse luna中是可以编译通过的,Eclipse mars也会报错,JDK版本都是1.8,还没去查为什么) 为什么在内部类中引用外部变量时,必须声明为final呢? 最开始我想的是 阅读全文
posted @ 2016-08-15 19:19 Geason崔 阅读(5660) 评论(1) 推荐(2) 编辑
摘要: 最近在自己动手写操作系统,计算机其实是一个非常复杂的系统。其中包含了很多历史性的问题,让人感到生僻难懂。在CSDN上看到一篇关于一致代码段和非一致代码段的文章,非常好,收藏起来。 原文链接:http://blog.csdn.net/feijj2002_/article/details/4597174 阅读全文
posted @ 2016-08-15 19:16 Geason崔 阅读(3408) 评论(0) 推荐(0) 编辑
摘要: 刚开始接触Disruptor,看了作者的博客,发现这个大牛很与众不同,他不仅讲解自己的框架的设计思想,还深度介绍了这样设计的原因,其知识范围涵盖了操作系统、数据结构、计算机组成,很有学习的价值。网上有一些网友的翻译,感觉对于有些细节推敲的不够细致。所以决定自己再翻译一遍。 阅读全文
posted @ 2016-08-15 19:07 Geason崔 阅读(305) 评论(0) 推荐(0) 编辑