上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页
摘要: 前言:单线程Reactor模型的缺点 紧接着上篇Reactor单线程模型的例子来,假设Handler的read那里的处理方式延迟5s,当做是业务性能瓶颈,改变下原来的Handler,让其read方法在处理时延迟5s: private void read() throws IOException { 阅读全文
posted @ 2020-01-08 18:09 朱子威 阅读(2147) 评论(0) 推荐(0) 编辑
摘要: 一、Selector&Channel 1.1:各种channel 写这个模型需要提前了解Selector以及Channel,之前记录过FileChannel,除此之外还有以下几种Channel: ServerSocketChannel:用于监听新的TCP连接的通道,负责读取&响应,通常用于服务端的实 阅读全文
posted @ 2020-01-08 18:08 朱子威 阅读(766) 评论(0) 推荐(0) 编辑
摘要: Selector:java nio无阻塞io实现的关键。阻塞io和无阻塞io:阻塞io是指jdk1.4之前版本面向流的io,服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒 绝请求,如果有的话,客户端会线程会等待请求结束后才继续 阅读全文
posted @ 2020-01-08 16:58 朱子威 阅读(888) 评论(0) 推荐(0) 编辑
摘要: 1、引言 Java NIO是Java 1.4版加入的新特性,虽然Java技术日新月异,但历经10年,NIO依然为Java技术领域里最为重要的基础技术栈,而且依据现实的应用趋势,在可以预见的未来,它仍将继续在Java技术领域占据重要位置。 网上有关Java NIO的技术文章,虽然写的也不错,但通常是看 阅读全文
posted @ 2020-01-08 14:05 朱子威 阅读(5159) 评论(0) 推荐(1) 编辑
摘要: 前言 我们知道volatile关键字的作用是保证变量在多线程之间的可见性,它是java.util.concurrent包的核心,没有volatile就没有这么多的并发类给我们使用。 本文详细解读一下volatile关键字如何保证变量在多线程之间的可见性,在此之前,有必要讲解一下CPU缓存的相关知识, 阅读全文
posted @ 2020-01-07 16:48 朱子威 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 背景 在一次项目的性能调优中,发现出现竞争瓶颈,导致在资源未使用满的情况下,TPS已经无法提升。祭起JMC(JAVA MISSON CONTROL)飞行记录器大法后,发现线程集中等待在logback写日志的地方,如下图所示: 由于项目组多线程写如同一个文件日志,导致存在IO竞争,一般解决这种问题有三 阅读全文
posted @ 2020-01-07 14:31 朱子威 阅读(8090) 评论(0) 推荐(0) 编辑
摘要: 首先,所有的系统调用都是原子性的。这句话来自TLPI: "All system calls are executed atomically. By this, we mean that the kernel guarantees that all of the steps in a system c 阅读全文
posted @ 2020-01-07 14:29 朱子威 阅读(1694) 评论(1) 推荐(0) 编辑
摘要: 1. 为什么是Reactor模式 写多了代码的兄弟们都知道,JAVA代码由于到处面向接口及高度抽象,用到继承多态和设计模式,程序的组织不是按照正常的理解顺序来的,对代码跟踪很是个问题。所以,在阅读别人的源码时,如果不了解代码的组织方式,往往是晕头转向,不知在何处。尤其是阅读经典代码的时候,更是如此。 阅读全文
posted @ 2020-01-07 10:46 朱子威 阅读(1091) 评论(0) 推荐(0) 编辑
摘要: select、poll、epoll之间的区别(搜狗面试) (1)select==>时间复杂度O(n) 它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差 阅读全文
posted @ 2020-01-06 11:50 朱子威 阅读(1474) 评论(0) 推荐(0) 编辑
摘要: 在《Unix网络编程》一书中提到了五种IO模型,分别是:阻塞IO、非阻塞IO、多路复用IO、信号驱动IO以及异步IO。 下面就分别来介绍一下这5种IO模型的异同。 1.阻塞IO模型 最传统的一种IO模型,即在读写数据过程中会发生阻塞现象。 当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没 阅读全文
posted @ 2020-01-06 11:09 朱子威 阅读(736) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页