当前搜索:

Disruptor学习总结(二):Disruptor分析

一、RingBuffer相关      在上文中我们介绍了RingBuffer的结构,这里我们就不再赘述了。它比操作数组更快,因为不用删除对象,数据对象可以复用,但是我们还存在几个疑问。整个生产/消费环境是怎样协调的?RingBuffer如何防止数据覆盖?接下来,我们就这两个问题进行分析。1、生产...
阅读(232) 评论(0)

Disruptor学习总结(一):Disruptor的使用

一、简介      Disruptor是一个生产者/消费者模式的框架,它有一个名字叫RingBuffer的容器。生产者生产数据,往RingBuffer上面装;消费者从RingBuffer上取数据,就像JDK中concurrent包的BlockingQueue一样,可以同时存取。但是Disrupto...
阅读(145) 评论(0)

自定义Java线程池

一、引言      我们先简述一下Java线程池到底是什么。线程池,其实就是封装线程的一个容器,里面有一组线程,说成池比较直观一点。为什么要这样做呢?众所周知,线程的创建和调度都是需要消耗内存和CPU的。如果用普通线程来处理任务的时候,一般是一条线程处理一个任务。而在线程池,线程数量是有限的,任务...
阅读(99) 评论(0)

Synchronized的实现原理(汇总)

一、Java中synchronized关键字的作用      总所周知,在并发环境中多个线程对同一个资源进行访问很可能出现脏读等一系列线程安全问题。这时我们可以用加锁的方式对访问共享资源的代码块进行加锁,以确保同一时间段内只能有一个线对资源进行访问,在它释放锁之前其他竞争锁的线程只能等待。而syn...
阅读(159) 评论(0)

Java线程基础

一、线程相关概念1、程序、进程与线程 程序:一段独立的静态代码,是一组指令的有序集合,它是静态的实体。就像活动进行前所列的计划一样。 进程:是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体。它有自己的唯一标识,也可以拥有资源,是系统进行资源分配和调度的一个...
阅读(139) 评论(0)

(四)Strut1.x原理剖析

一、基础回顾这里先回顾一下Struts1.x的基础,到底一个最简单的Struts程序包含哪些部分? ActionServlet:它是整个Struts框架的中央控制器,包括请求的接收、分发、处理和页面跳转。它是Struts自带的Servlet类,需要在web.xml中配置,并初始化config参数,...
阅读(103) 评论(0)

(三)Struts1.x高级应用

一、国际化1、什么是国际化按照我个人的理解,国际化就是根据客户端的语言环境显示不同的语言。也就是服务器根据客户端提交过来的语言环境返回不同的内容(客户端语言环境会在请求头“Accept-Language”中提交过来)。2、Strut1.x国际化的使用(1)、提供不同的资源包资源包的命名格式:包名_...
阅读(129) 评论(0)

(二)Struts1.x校验器

一、什么是校验器(Validator)在Struts1.x中,校验器能校验客户端提交的数据是否符合要求。如果不符合要求,则会跳转到struts配置文件的“action”标签中“input”属性指定的页面;对于是否进行校验,可以通过“action”标签中的“validate”属性指定,默认为true...
阅读(112) 评论(0)

(一)一个简单的Struts程序

一、Struts1.x介绍 众所周知,Struts是JavaWeb开发中的常用框架,但是框架有什么用?Struts又充当什么角色呢? 框架被设计出来,提高了代码的重用性,很多重复性的的底层操作都在框架中被封装好了,所以开发者只需要关注他的业务逻辑,开发效率就大大地提高了。 J...
阅读(101) 评论(0)

一步步分析SpringMVC源码

一、处理过程分析 1、首先,Tomcat每次启动时都会加载并解析/WEB-INF/web.xml文件,所以可以先从web.xml找突破口,主要代码如下: <servlet > <servlet-name >spring-mvc</servlet-name...
阅读(507) 评论(0)

Java内存模型

Java内存模型一、Java内存模型内部原理图示: 每个线程都有自己独立的工作内存,线程的所有操作都是在自己的工作内存中完成的,所以每个线程的操作数都是独立的,不共享。要实现其他线程可见必须将工作内存中的变量写回主存中。 通过以下操作可以进行内存间的数据交互...
阅读(203) 评论(0)

MySQL视图

MySQL视图一、什么是视图 视图是一种虚拟存在的表,它并不在数据库中实际存在,而是在使用中动态生成的。 二、视图的作用1、安全:使用视图用户只能访问到他们有权限访问的数据(具体到每一列),对表的权限管理不能具体到每一列。 2、简单:使用视图不用关心表的结构、关联条件和筛选条件,因为它是动...
阅读(269) 评论(0)

MySQL备份与恢复

MySQL备份与恢复一、环境准备1、操作系统:Ubuntu 14.04.4 2、数据库:MySQL5.5 3、起始数据:test数据库有user表和address表,二者无关联关系 user表: address表: 二、MySQL备份 MySQL备份分为全量备份与增量备份,**全量...
阅读(142) 评论(0)
    个人资料
    等级:
    访问量: 2434
    积分: 159
    排名: 110万+
    文章存档