摘要:
spring通过@PathVariable注解来获得请求url中的动态参数的,并且支持动态url访问,可以从url中直接提取参数而不需要采用?q=q&d=d的形式 代码示例如下: 同时变量url中的PathVariable还支持正则表达式校验,上面最后一个方法只能字母加后缀三个数字的方式访问 阅读全文
摘要:
Jedis总共支持八种调用方式:普通同步方式 ,事务方式(Transactions) ,管道(Pipelining) ,管道中调用事务 ,分布式直连同步调用 ,分布式直连异步调用 ,分布式连接池同步调用,分布式连接池异步调用 事务中某个操作失败,并不会回滚其他操作。 基于数据库的分布式锁: Redi 阅读全文
摘要:
集合类的另外一种重要实现为Map接口,Map接口提供的方法如下: Map接口一个不常见实现为HashTable,HashTable对所有有并发访问问题的方法通过 synchronized 关键字进行并发操作控制。 HashTable的Key和Value都不能为空,否则抛出NullPointerExc 阅读全文
摘要:
Collection接口的另外一种实现为Set集合,主要有两种实现方式一种为HashSet另一种为TreeSet,两种实现都依赖与对应的Map实现类。 代码如下: 阅读全文
摘要:
LinkedList 是另外一种重要的数据结构形式, 底层是使用了双向链表数据结构, 特点: 查询速度慢,增删快。 继承关系如下: 可以发现,LinkedList同时实现了Quene和Deque接口。 静态内部类Node的实现: 对应的初始化方法即add()添加方法: 阅读全文
摘要:
1. 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务 阅读全文
摘要:
选择器提供选择执行已经就绪的任务的能力,这使得多元 I/O 成为可能。就像在第一章中描述的那样,就绪选择和多元执行使得单线程能够有效率地同时管理多个 I/O 通道(Channels)。C/C++代码的工具箱中,许多年前就已经有 select()和 poll()这两个POSIX(可移植性操作系统接口) 阅读全文
摘要:
ServerSocketChannel: ServerSocketChannel是一个基于通道的socket监听器。它同我们所熟悉的java.net.ServerSocket执行相同的基本任务,不过它增加了通道语义,因此能够在非阻塞模式下运行。用静态的open( )工厂方法创建一个新的ServerS 阅读全文
摘要:
阻塞非阻塞: NIO中的Channel主要分为两大类:一类是FileChannel,另一类是SocketChannel。NIO提供的核心非阻塞特性主要针对SocketChannel类,全部socket通道类(DatagramChannel、SocketChannel和ServerSocketChan 阅读全文
摘要:
通道提供了一种被称为Scatter/Gather的重要新功能(有时也被称为矢量I/O)。Scatter/Gather是一个简单却强大的概念,它是指在多个缓冲区上实现一个简单的I/O操作。对于一个write操作而言,数据是从几个缓冲区按顺序抽取(称为gather)并沿着通道发送的。缓冲区本身并不需要具 阅读全文