自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (22)
  • 收藏
  • 关注

转载 Java 理论与实践: 正确使用 Volatile 变量

Java 理论与实践: 正确使用 Volatile 变量 volatile 变量使用指南 Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 Java 理论与实践 中,Brian Go

2017-04-30 00:46:53 326

转载 深入Java底层:内存屏障与JVM并发详解(1)

深入Java底层:内存屏障与JVM并发详解(1) 2010-04-27 09:17 Dennis Byrne infoQ 字号:T | T 本文介绍了内存屏障对多线程程序的影响,同时将研究内存屏障与JVM并发机制的关系,如易变量(volatile)、同步(synchronized)和原子条件式(atomic conditional)。 AD:51CTO 网+ 第十

2017-04-29 23:44:24 1278

转载 聊聊高并发(三十五)Java内存模型那些事(三)理解内存屏障

在聊聊高并发(三十三)从一致性(Consistency)的角度理解Java内存模型 我们说了硬件层提供了满足某些一致性需求的能力,Java内存模型利用了硬件层提供的能力指定了一系列的语法和规则,让Java开发者可以隔绝这种底层的实现专注于并发逻辑的开发。这篇我们来看看硬件层是如何提供这些实现一致性需求的能力的。 硬件层提供了一系列的内存屏障 memory barrier / memory

2017-04-29 23:19:35 313

转载 Java内存模型Cookbook(二)内存屏障

Java内存模型Cookbook(二)内存屏障 原文:http://gee.cs.oswego.edu/dl/jmm/cookbook.html 第二节 作者:Doug Lea 翻译:潘曦   校对:方腾飞 指令重排内存屏障多处理器指南 编译器和处理器必须同时遵守重排规则。由于单核处理器能确保与“顺序执行”相同的一致性,所以在单核处理器上并不需要专门做什么处理,就可以保证正确的执行

2017-04-28 09:23:45 264

转载 JMM Cookbook(一)指令重排

原文地址:http://gee.cs.oswego.edu/dl/jmm/cookbook.html 第一章 译者:欧振聪 校对:李同杰 前言指令重排内存屏障多处理器指南 指令重排 对于编译器的编写者来说,Java内存模型(JMM)主要是由禁止指令重排的规则所组成的,其中包括了字段(包括数组中的元素)的存取指令和监视器(锁)的控制指令。 Volatile与监视器 JMM中关于vola

2017-04-28 09:22:49 352

转载 Java内存模型FAQ(三)JSR133是什么?

原文:http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html 第三章 译者:Alex 从1997年以来,人们不断发现Java语言规范的17章定义的Java内存模型中的一些严重的缺陷。这些缺陷会导致一些使人迷惑的行为(例如final字段会被观察到值的改变)和破坏编译器常见的优化能力。 Java内存模型是一个雄心勃勃的计划,

2017-04-28 09:22:12 251

转载 深入理解Java内存模型(七)——总结

深入理解Java内存模型(七)——总结 处理器内存模型 顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和JMM,那么很多的处理器和编译器优化都要被禁止,这对执行性能将会有很大的影响。 根据对不同类型读/写操作组合的执行顺序的放松,

2017-04-27 10:00:24 297

转载 深入理解Java内存模型(六)——final

深入理解Java内存模型(六)——final 本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-6 与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构

2017-04-27 09:59:36 375

转载 深入理解Java内存模型(五)——锁

深入理解Java内存模型(五)——锁 本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-5 锁的释放-获取建立的happens before 关系 锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放-获取的示例代码:

2017-04-27 09:58:50 261

转载 深入理解Java内存模型(三)——顺序一致性

深入理解Java内存模型(三)——顺序一致性 本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-3 数据竞争与顺序一致性保证 当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下: 在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。

2017-04-27 09:57:54 350

转载 深入理解Java内存模型(二)——重排序

本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-2 数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型: 名称 代码示例 说明 写后读 a = 1;b = a; 写一个变量之后,再读这个位置。

2017-04-27 09:57:17 300

转载 深入理解Java内存模型(一)——基础

本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-1 并发编程模型的分类 在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 在共享内存的并

2017-04-27 09:56:53 238

转载 深入理解Java内存模型(四)——volatile

本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-4 volatile的特性 当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,

2017-04-27 09:55:39 208

转载 zookeeper简介

一直对zookeeper的应用和原理比较迷糊,今天看一篇文章,讲得很通透,分享如下:  场景一 有这样一个场景:系统中有大约100w的用户,每个用户平 均有3个邮箱账号,每隔5分钟,每个邮箱账需要收取100封邮件,最多3亿份邮件需要下载到服务器中(不含附件和正文)。用20台机器划分计算的压力,从 多个不同的网路出口进行访问外网,计算的压力得到缓解,那么每台机器的计算压力也不会很大了。

2017-04-16 23:56:49 446

转载 CAP原理和BASE思想

分布式领域CAP理论, Consistency(一致性), 数据一致更新,所有数据变动都是同步的 Availability(可用性), 好的响应性能 Partition tolerance(分区容错性) 可靠性 定理:任何分布式系统只可同时满足二点,没法三者兼顾。 忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。 关系数据库的ACID模型拥有

2017-04-16 23:46:50 268

转载 为什么不要把ZooKeeper用于服务发现

ZooKeeper是Apache基金会下的一个开源的、高可用的分布式应用协调服务。许多公司都把它用于服务发现。但在云环境中,面对设备及网络故障时的恢复能力是需要重点考虑的问题。因此,将应用部署在云上,就必须要预见到硬件故障、网络延迟以及网络分区等问题,进而构建出恢复能力强的系统。Peter Kelley是个性化教育初创公司Knewton的一名软件工程师。他认为,从根本上讲,把ZooKeeper用于

2017-04-16 23:37:04 368

转载 ZooKeeper和CAP理论及一致性原则

一、CAP理论概述 分布式领域中存在CAP理论,且该理论已被证明:任何分布式系统只可同时满足两点,无法三者兼顾。   ①C:Consistency,一致性,数据一致更新,所有数据变动都是同步的。   ②A:Availability,可用性,系统具有好的响应性能。   ③P:Partition tolerance,分区容错性。 因此,将精力浪费在思考如何设计能满足三者的完美系统上是愚钝

2017-04-16 23:22:17 2753 1

转载 zookeeper编程

zookeeper编程(二) 两年前写过ZooKeeper编程(一),那时候还在实习。近期组内做了个zookeeper编程的分享,就又把各种问题整理了一下。以下只是简单地copy了幻灯片中的内容,写得不够连贯,读者见谅。 ZooKeeper的轮廓 /---root   |   \----child1   |   \----chi

2017-04-16 00:07:21 515

转载 Zookeeper中几个重要概念

zookeeper是hadoop下面的一个子项目, 用来协调跟hadoop相关的一些分布式的框架, 如hadoop, hive, pig等, 其实他们都是动物, 所以叫zookeeper ——“动物园管理员”。动物园里当然有好多的动物,游客可以根据动物园提供的向导图到不同的场馆观赏各种类型的动物,而不是像走在原始丛林里,心惊胆颤的被动物所观赏。为了让各种不同的动物呆在它们应该呆的地方,而不是相

2017-04-15 23:06:06 385

转载 Zookeeper Api(java)入门与应用(转)

如何使用 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理,后面将会详细介绍 Zookeeper 能够解决的一些典型问题,这里先介绍一下,

2017-04-15 14:54:01 306

转载 HandlerMapping 详解

HandlerMapping 详解 1. 导言 万丈高楼平地起,SpringMVC的辉煌离不开每个组件的相互协作,上一章详细阐述了SpringMVC整个体系结构及实现原理,知道HandlerMapping在这个SpringMVC体系结构中有着举足轻重的地位,充当着url和Controller之间映射关系配置的角色。主要有三部分组成:HandlerMapping映射注册、根据url获取对应的处理

2017-04-08 15:45:22 3297

转载 SpringMVC 架构

SpringMVC 架构 SpringMVC 架构 1. 前言 SpringMVC是目前java世界中最为广泛应用的web框架,最然从学习SpringMVC的第一个程序--helloworld至今,已有好几个年头。其间伴随着项目的同时找资料,看文档,也涉猎过部分源代码,基本明白了SpringMVC是怎么回事,遇到需求知道如何写代码,在哪写代码。但是对SpringMVC并没有深入理解,

2017-04-08 15:42:22 410

转载 initMethod 和 afterPropertiesSet 以及 AwareMethod方法的执行时机

initMethod 和 afterPropertiesSet 以及 AwareMethod方法的执行时机 在spring开发中,我们定义bean 经常会需要用到beanFactory对象,这就需要实现BeanFactoryAware这种类型的接口,它有一个setBeanFactory方法   在xml中配置bean 的时候,我们也可以指定initMethod方法   在bean类

2017-04-08 15:41:16 726

转载 spingMVC模块handlerMapping的初始化过程

spingMVC模块handlerMapping的初始化过程 一,请求的分发过程     首先简单描述一下,请求的分发过程。一个请求到来,会走到DispatcherServlet的doDispatch方法。这个方法非常重要,封装了整个请求的分发过程,其中有一段代码如下: //根据请求找到对应的handler mappedHandler = getHandler(pro

2017-04-08 15:11:47 438

转载 Reactor 模式的简单实现

在网上有部分文章在描述Netty时,会提到Reactor。这个Reactor到底是什么呢?为了搞清楚Reactor到底是什么鬼,我写了一个简单的Demo,来帮助大家理解他。   网上是这么描述Reactor的: The Reactor design pattern handles service requests that are delivered concurrently t

2017-04-04 22:15:36 948 1

转载 《Spring设计思想》AOP实现原理(基于JDK和基于CGLIB)

0、前言      在上篇文章《Spring设计思想》AOP设计基本原理 中阐述了Spring AOP 的基本原理以及基本机制,本文将深入源码,详细阐述整个Spring AOP实现的整个过程。       读完本文,你将了解到: 1、Spring内部创建代理对象的过程 2、Spring AOP的核心---ProxyFactoryBean 3、基于JDK面向接口的

2017-04-02 16:32:26 473

转载 细说JDK动态代理的实现原理

细说JDK动态代理的实现原理 发表于2015/9/15 21:12:35  7665人阅读 分类: java 关于JDK的动态代理,最为人熟知的可能要数Spring AOP的实现,默认情况下,Spring AOP的实现对于接口来说就是使用的JDK的动态代理来实现的,而对于类的代理使用CGLIB来实现。那么,什么是JDK的动态代理呢? JDK的动态代理,就是在程序运行的过

2017-04-02 10:04:23 454

转载 cglib动态代理介绍(一)

什么是AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定

2017-04-01 17:23:54 791

转载 cglib动态代理介绍(一)

一、原理       代理为控制要访问的目标对象提供了一种途径。当访问对象时,它引入了一个间接的层。JDK自从1.3版本开始,就引入了动态代理,并且经常被用来动态地创建代理。JDK的动态代理用起来非常简单,当它有一个限制,就是使用动态代理的对象必须实现一个或多个接口。如果想代理没有实现接口的继承的类,该怎么办?现在我们可以使用CGLIB包。 二、什么是cglib      CGL

2017-04-01 17:23:10 310

转载 cglib动态代理介绍(二)

1.CGLIB包的介绍 代理为控制要访问的目标对象提供了一种途径。当访问对象时,它引入了一个间接的层。JDK自从1.3版本开始,就引入了动态代理,并且经常被用来动态地创 建代理。JDK的动态代理用起来非常简单,当它有一个限制,就是使用动态代理的对象必须实现一个或多个接口。如果想代理没有实现接口的继承的类,该怎么 办?现在我们可以使用CGLIB包 CGLIB是一个强大的高性能的代码生成包。它广泛

2017-04-01 17:22:43 582

转载 淘宝TDDL——Matrix层的分库分表配置与实现

博客分类:  TDDL,Diamond TDDLDiamond  笔者带你剖析淘宝TDDL(TAOBAO DISTRIBUTE DATA LAYER) 注:本文部分内容引用本人博客http://gao-xianglong.iteye.com/blog/1973591   前言 在开始讲解淘宝的TDDL(Taobao Distribute Data Layer)技术之前,请

2017-04-01 17:21:15 1059

转载 IntelliJ IDEA 15 创建maven项目

说明 创建Maven项目的方式:手工创建好处:参考IntelliJ IDEA 14 创建maven项目二(此文章描述了用此方式创建Maven项目的好处)及idea14使用maven创建web工程(此文章描述了用模板创建Maven的弊端。) 创建一个新Maven项目 new 一个project 不选择任何Maven模板 起个GroupId、ArifactId

2017-04-01 16:13:24 461

转载 AQS的原理浅析

本文是《Java特种兵》的样章,本书即将由工业出版社出版 AQS的全称为(AbstractQueuedSynchronizer),这个类也是在java.util.concurrent.locks下面。这个类似乎很不容易看懂,因为它仅仅是提供了一系列公共的方法,让子类来调用。那么要理解意思,就得从子类下手,反过来看才容易看懂。如下图所示: 图 5-15 AQS的子类实现 这么多类,我们

2017-04-01 16:10:24 726

mysql和 oracle数据库安装文档

公司最近整理的,用来培训的文档,很多人按照文档操作,都成功了

2017-11-30

oracle和mysql数据库安装文档

公司最近整理的用来培训的文档,很多人按照文档操作,都可以成功

2017-11-30

zookeeper做分布式锁

zookeeper做分布式锁

2017-08-11

liferay portlet 开发文档

liferay portlet 开发文档

2013-01-20

java json 转换

java json 转换 java json 转换

2013-01-20

DOJO_API中文参考

DOJO_API_中文参考手册

2013-01-18

db2 错误码 大全

db2 错误码 大全,通过查询错误码,可以知道自己错误的原因

2012-10-28

oracle 数据库 plsql 存储过程

oracle 数据库 plsql 存储过程

2012-02-29

oralce 数据库 性能调优

oralce 数据库 性能调优

2012-02-29

oracle 数据库 dba 日记

oracle 数据库 dba 日记

2012-02-29

ORACLE sqlplus命令+数据字典的使用

ORACLE sqlplus命令+数据字典,数据库

2012-02-29

oracle plsql 开发指南

oracle plsql 开发指南

2012-02-29

jdk 1.6文档 参考手册

jdk 1.6文档 参考手册 jdk 1.6文档 参考手册

2011-10-16

hibernate3 文档 参考手册

hibernate3 文档 参考手册 hibernate3 文档 参考手册

2011-10-16

extjs / ext 使用手册 文档

html 开发 中,要使用的 extjs / ext 开发文档

2011-10-16

sql 语言参考手册

sql 语言参考手册 怎么样使用sql语言

2011-10-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除