摘要: 相关资料 IO基本概念 Linux环境 同步异步阻塞非阻塞 同步与异步 阻塞与非阻塞 IO模型Reference Link 阻塞IO模型 非阻塞IO模型 IO复用模型 信号驱动异步IO模型 异步IO模型 总结 AIOBIONIO Java对BIONIOAIO的支持 AIOReference Link 阅读全文
posted @ 2018-09-10 13:40 twoheads 阅读(700) 评论(0) 推荐(0) 编辑
摘要: netty是什么 Netty是一个基于Java NIO的client-server网络服务框架,人们可以利用netty快速地开发网络应用。同时netty相对于其他网络框架更加简单并且扩展性更强,这主要得益于其提供的简单易用的api将业务逻辑和网络处理代码解耦开来。能够使你更加专注于业务的实现而不需要 阅读全文
posted @ 2018-09-10 09:51 twoheads 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 前言 随着移动互联网的蓬勃发展,手机App层出不穷,其业务也随之变得错综复杂。针对于开发人员来说,可能之前的一个业务只需要调取一次第三方接口以获取数据,而如今随着需求的增加,该业务需调取多个不同的第三方接口。通常,我们处理方法是让代码同步顺序的去调取这些接口。显然,调取接口数量的增加必然会造成响应时 阅读全文
posted @ 2018-09-07 17:51 twoheads 阅读(1870) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/anxpp/article/details/51512200 源码:https://github.com/anxpp/Java-IO 阅读全文
posted @ 2018-09-07 16:30 twoheads 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒 阅读全文
posted @ 2018-09-07 15:59 twoheads 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 几篇解释的不错的文章: BIO NIO AIO NIO.2 入门,第 1 部分: 异步通道 API 使用异步 I/O 大大提高应用程序的性能 阅读全文
posted @ 2018-09-07 14:28 twoheads 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 一、引言 Java1.4之前的早期版本,Java对I/O的支持并不完善,开发人员再开发高性能I/O程序的时候,会面临一些巨大的挑战和困难,主要有以下一些问题: (1)没有数据缓冲区,I/O性能存在问题 (2)没有C或者C++中的Channel概念,只有输入和输出流 (3)同步阻塞式I/O通信(BIO 阅读全文
posted @ 2018-09-06 16:57 twoheads 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 概要: AQS维护了一个同步队列 Condition是JUC的一个接口,AQS的ConditionObject实现了这个接口,维护了一个等待队列(等待signal信号的队列) 线程调用reentrantLock.lock()时,线程被加入到AQS同步队列中; 线程A调用condition.await 阅读全文
posted @ 2018-09-05 17:10 twoheads 阅读(1184) 评论(0) 推荐(1) 编辑
摘要: 本篇文章将介绍Condition的实现原理和基本使用方法,基本过程如下: 1、Condition提供了await()方法将当前线程阻塞,并提供signal()方法支持另外一个线程将已经阻塞的线程唤醒。 2、Condition需要结合Lock使用 3、线程调用await()方法前必须获取锁,调用awa 阅读全文
posted @ 2018-09-05 14:24 twoheads 阅读(1376) 评论(0) 推荐(0) 编辑
摘要: 一、前言 有了前面分析的基础,现在,接着分析CyclicBarrier源码,CyclicBarrier类在进行多线程编程时使用很多,比如,你希望创建一组任务,它们并行执行工作,然后在进行下一个步骤之前等待,直至所有的任务都完成,和join很类似,下面,开始分析源码。 二、CyclicBarrier数 阅读全文
posted @ 2018-09-04 16:37 twoheads 阅读(309) 评论(0) 推荐(0) 编辑