2017年4月28日
摘要: 引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3.x之后,就已经内置了@Async来完美解决这个问题,本文将完成介绍@Async的用法。 1. 何为异 阅读全文
posted @ 2017-04-28 18:57 duanxz 阅读(23042) 评论(0) 推荐(7)
摘要: 什么是“异步调用”? “异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行;异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序。 同步调用 下面通过一个简单示例来直观的理解什么是同步调用: 定义Task类,创建 阅读全文
posted @ 2017-04-28 18:26 duanxz 阅读(9871) 评论(0) 推荐(2)
摘要: 目录: Reactor(反应堆)和Proactor(前摄器) 《I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor》 《【转】第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式》 《Java NIO系列教程(八)JDK AIO编程》- 阅读全文
posted @ 2017-04-28 18:14 duanxz 阅读(3025) 评论(1) 推荐(0)
摘要: Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。 这里是Pipe原理的图示: 创建管道 通过Pipe.open()方法打开管道。例如: 1 Pipe pipe = Pipe.open(); 1 P 阅读全文
posted @ 2017-04-28 18:13 duanxz 阅读(862) 评论(0) 推荐(0)
摘要: 零拷贝(zero-copy)是一种目前只有在使用 NIO 和 Epoll 传输时才可使用的特性。它使你可以快速 高效地将数据从文件系统移动到网络接口,而不需要将其从内核空间复制到用户空间,其在像 FTP 或者 HTTP 这样的协议中可以显著地提升性能。但是,并不是所有的操作系统都支持这一特性。特别地 阅读全文
posted @ 2017-04-28 18:12 duanxz 阅读(1338) 评论(0) 推荐(0)
摘要: 目前Spring Boot中默认支持的连接池有dbcp,dbcp2, hikari三种连接池。 引言: 在Spring Boot下默认提供了若干种可用的连接池,Druid来自于阿里系的一个开源连接池,在连接池之外,还提供了非常优秀的监控功能,这里讲解如何与Spring Boot实现集成。 1. 环境 阅读全文
posted @ 2017-04-28 18:12 duanxz 阅读(1612) 评论(0) 推荐(0)
摘要: 目录 《linux文件锁flock》 《NIO文件锁FileLock》 《java程序怎么在一个电脑上只启动一次,只开一个进程》 文件锁可以是shared(共享锁)或者exclusive(排他锁)。不是所有的平台都以同一种方式实现文件锁,不同的操作系统可能不同,同一操作系统上的不同文件系统也可能不同 阅读全文
posted @ 2017-04-28 18:11 duanxz 阅读(1757) 评论(0) 推荐(0)
摘要: 目录: Reactor(反应堆)和Proactor(前摄器) 《I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor》 《【转】第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式》 《Java NIO系列教程(八)JDK AIO编程》- 阅读全文
posted @ 2017-04-28 18:11 duanxz 阅读(2369) 评论(0) 推荐(0)
摘要: 多路复用器Selector是Java NIO编程的基础,熟练地掌握Selector对于掌握NIO编程至关重要。多路复用器提供选择已经就绪的任务的能力。简单来讲,Selector会不断地轮询注册在其上的Channel,如果某个Channel上面有新的TCP连接接入、读和写事件,这个Channel就处于 阅读全文
posted @ 2017-04-28 18:08 duanxz 阅读(4994) 评论(1) 推荐(0)