- 博客(14)
- 资源 (39)
- 收藏
- 关注
原创 Java网络编程----Netty入门(NIO框架)
一.介绍 Netty是基于NIO的框架,在介绍Netty之前,对比下这两种方式的通信步骤 1.1 NIO通信步骤 (1) 创建ServerSocketChannel,为它配置非阻塞模式 (2) 绑定监听,配置TCP参数,录入backlog大小等 (3) 创建一个独立的IO线程,用于轮询多路复用器Selector
2018-01-28 21:17:00 335
原创 Java网络编程----AIO编程
一.介绍 AIO编程,在NIO基础之上引入了异步通道的概念,并提供了异步文件和异步套接字通道的实现,从而在真正意义上实现了异步非阻塞.NIO只是非阻塞而并非异步.而AIO它不需要通过多路复用器对注册的通道进行轮询操作即可实现异步读写,从而简化了NIO编程模型.也可以称之为NIO2.0.这种模式才是真正属于我们的异步非阻塞的模型 AsynchronousServerSock
2018-01-28 17:03:00 341
原创 Java网络编程----NIO编程
一.介绍 有人叫NIO为New IO,有的人把NIO叫做Nonblock IO,这里还是比较倾向于后者,非阻塞IO.NIO有几个重要的基本概念:Buffer(缓冲区),Channel(管道,通道),Selector(选择器,多路复用器).NIO的本质就是避免原始的TCP建立连接使用三次握手的操作,减少连接的开销.模型如下图:
2018-01-25 22:43:19 388
原创 Java 网络编程----回顾传统网络编程BIO
一.介绍 网络编程的基本模型是Client/Server模型,也就是两个进程直接进行相互通信,其中服务端提供配置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接成功,则双方即可以进行通信(网络套接字Socket).模型如下图所示 二.代码示例packag
2018-01-25 21:45:51 371
原创 Oracle 大数据量查询优化
前言:平常写的SQL可能主要以实现查询出结果为主,但如果数据量一大,就会突出SQL查询语句优化的性能独特之处.一般的数据库设计都会建索引查询,这样较全盘扫描查询的确快了不少.下面总结下SQL查询语句的几个优化效率的地方,经验有限,难免有不足. 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引 2.避免在索引列上使用NOT在 where
2018-01-18 22:31:51 17881 1
原创 Java并发编程---自定义线程池
一.概念 若Executors工厂类无法满足我们的需求,可以自己去创建自定义的线程池,其实Executors工厂类里面的创建线程方法,其内部实现均是用了ThreadPoolExecutor这个类,这个类可以自定义线程.构造方法如下: public ThreadPoolExecutor(int corePoolSize,
2018-01-07 15:18:42 432
原创 Java并发编程---Executors多任务线程框架
一.概念 为了更好地控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效地进行线程控制.他们都在java.util.concurrent包中,是JDK并发包的核心.其中有一个比较重要的类Executors,他扮演这线程工厂的角色,我们通过Executors可以创建特定功能的线程池. Executors创建线程池的方法: new
2018-01-07 15:14:42 689
原创 Java并发编程---生产者-消费者模式
一.概念 生产者和消费者也是一个非常经典的多线程模式,我们在实际开发中应用非常广泛的思想理念.在生产--消费模式中:通常由两类线程,即若干个生产者的线程和若干个消费者的线程.生产者线程负责提交用户请求,消费者线程则负责具体处理生产者提交的任务,在生产者和消费者之间通过共享内存缓冲区进行通信(该模式在MQ中使用比较广泛) 二
2018-01-07 15:13:34 411
原创 Java并发编程---Master-Worker模式
一.概念 Master-Worker模式是常用的并行计算模式.它的核心思想是系统由两类进程协作工作:Master进程和Worker进程.Master负责接收和分配任务,Worker负责处理子任务.当各个Worker子进程处理完成后,会将结果返回Master,由Master做归纳和总结.其好处是能将一个大任务分解成若干个小任务,并行执行,从而提高系统的吞吐量.
2018-01-05 22:11:46 690
原创 Java并发编程---Futrue模式
一.Futrue模式概念 Futrue模式有点类似于商品订单.比如在网购时,当看中某件商品时,就可以提交订单,当订单处理完成后,在家里等待商品送货上门即可.或者更形象地,我们发送Ajax请求的时候,页面是异步地进行后台处理,用户无须一直等待请求的结果,可以继续浏览或操作其他内容. 二.代码示例package com.threa
2018-01-05 21:12:17 508
原创 Java并发编程---并发类容器(Queue容器)
一.概念 1.1 并发Queue 在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的高性能队列,一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继承自Queue 1.2 ConcurrentLinkedQueue(属于Queue队列接
2018-01-01 20:19:46 431
原创 Java并发编程---并发类容器(CopyOnWrite容器)
一.概念 Copy-On-Write简称COW,是一种用于程序设计中的优化策略.JDK里的COW容器主要有两种:CopyOnWriteArrayList和CopyOnWriteArraySet,COW容器非常有用,可以在非常多的并发场景中使用到. 什么是CopyOnWrite容器? CopyOnWrite容器即写时复制的容器.通俗
2018-01-01 17:28:46 324
原创 Java并发编程---并发类容器(ConcurrentMap容器)
一.背景前奏 jdk5.0以后提供了多种并发类容器来替代同步类容器从而改善性能.同步类容器的状态都是串行化的.他们虽然实现了线程安全.但是严重降低了并发性,在多线程环境时,严重降低了应用程序的吞吐量. 并发类容器是专门针对并发设计的使用ConcurrentHashMap来代替给予散列的传统的HashTable,而且在ConcurrentHashMap中,添加了一些常见复合
2018-01-01 17:28:30 281
原创 Java并发编程---同步类容器
一.概念 同步类容器都是线程安全的,但在某些场景下可能需要加锁来保护复合操作.复合类操作如:迭代(反复访问元素,遍历完容器中所有的元素),跳转(根据指定的顺序找到当前元素的下一个元素),以及条件运算.这些复合操作在多线程并发地修改容器时,可能会表现出意外的行为,最经典的便是ConcurrentModifiCationException,原因是当容器迭代的过程中,被并发地修改了
2018-01-01 17:28:02 300
SpringBoot2.0整合Elasticsearch6.0使用ElasticsearchRepository接口实践
2019-01-23
SpringCloud微服务项目
2019-01-21
kafka-manager安装包
2018-10-11
Java做客户端对Elasticsearch服务的增删改查及批量修改操作
2018-04-08
使用lucene构建一个简单的搜索引擎
2017-11-25
MyBatis 基于Mapper的增删改查示例(Spring IOC注入)
2017-10-29
Hibernate之原生Native SQL查询
2017-10-21
Hibernate之HQL查询
2017-10-21
在Spring+Hibernate集成环境中使用EhCache缓存
2017-10-18
Spring+Hibernate 一对一映射级联增删改查小例子
2017-10-17
Spring+Hibernate 多对多关联映射---教师与学生表的级联增删改查
2017-10-16
Spring+Hibernate事务管理
2017-10-14
SpringBoot + Redis实现事件的发布订阅功能
2019-12-17
Eclipse搭建Hadoop3.1.0开发环境需要的插件
2019-05-16
Window系统部署配置Hadoop,Spark需要的文件
2019-05-14
SpringBoot+MyBatis+SpringSession+Redis实现session共享及单点登录
2019-03-02
手写SpringIoc的XML实现方式
2019-01-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人