`
humn_chou
  • 浏览: 22588 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
这是本人对于Dubbo源码分析的系列二,对于系列一,主要是对Dubbo的初始化、请求-响应过程的分析,并没有详细分析每个细节,接下来的系列主要是分析Dubbo中的各个细节,以供更加准确的了解这个支持SOA的RPC分布式框架,本系列介绍Dubbo中的编码解码与序列化反序列化逻辑及消费者、提供者、注册中心之间的连通性设计,当然,这里只是介绍,具体代码细节不会涉及。 一、Dubbo中编码解码与序列化反序列化逻辑 a) 序列化反序列化 i. 顾名思义,序列化的过程就是将内存中对象格式化成可以存储、远程传输等的过程,而反序列化的过程恰好相反。Dubbo中序列化就是对象与流之间转化的过程,且提供了dubb ...
前言 HashMap是Java中常用的集合,而且HashMap的一些思想,对于我们平时解决业务上的一些问题,在思路上有帮助,基于此,本篇博客将分析HashMap底层设计思想,并手写一个迷你版的HashMap!   对HashMap的思考 HashMap底层数据结 ...
这是本人对于Dubbo源码分析的系列一,没有说明Dubbo是什么,不清楚请先了解,此处只是为了给自己做个笔记,也给正在学习Dubbo的同学一些借鉴,后期会继续奉上所有关于Dubbo的逻辑分析,包括Dubbo简介、初始化与请求细节、注册 ...
Jbpm,他是jboss下的一个开源项目,是个基于petri net理论为基础的工作流引擎。本文主要通过jbpm源代码分析下jbpm引擎内核工作原理。         Jbpm是基于微内核引擎的基础上扩展开发出来的工作流平台,其运行的核心包是在org.jbpm.graph下,在该包下又分有action、def、exe、log、node几个包,jbpm内核引擎实现逻辑主要存放在def、exe这两个包下,其他的包是基于此内核扩展出来的动作、模型和日志。         下面我们通过一个简单的例子来逐步的分析jbpm是如何工作的。看下面jbpm自带演示的一个hello流程(视乎大家都喜欢从hello实 ...
这里说的几个软件模式是属于原则层次一级的,比GoF等软件设计模式高一层。遵循这些原则可以使我们设计出来的软件有更好的可复用性和可维护性,同样GoF等软件设计模式也是遵循这一原则的。 下边的条列只是简单的介绍, ...

事物隔离机制

    博客分类:
  • Java
数据库并发操作存在的异常情况:并发事物中 1.更新丢失(Lost update):两个事务更新一行数据,但是第二事务却中途失败退出,导致对数据两个修改都失效了,这是[/size][size=x-large]系统没有执行任何锁操作,因此并发事务并没有被隔离开来 2.脏读取(Dirty Reads):一个事物开始读取了某行数据,但是另外一个事务已经更新了此数据但没有能够及时提交。这是相当危险,很可能所有操作都被回滚 3.不可重复读取(Non-repeatable Reads):一个事务对同一行数据重复读取两次,但是却得到了不同结果。例如在两次读取中途,有另外一个事务对该行数据进行了修改并提交 4. ...
[size=large][/size][size=medium]首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作来创建的对象,每个线程创建一个,不是什么对象的拷贝或副本。通过ThreadLocal.set()将这个新创建的对象的引用保存到各线程的自己的一 ...
每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。 学习Java的第一步是安装好JDK,写一个Hello World, 其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰 Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package和import问题,如何来寻找类的路径问题。把这两个问题摸 ...
本文非本人撰写,是网上资源 1 lucene简介 1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。 1.2 lucene能做什么 要回 ...
本文来源 http://yefeng.iteye.com/blog/112565 在JSP/Servlet编程中response.sendRedirect方法就是使用HTTP协议中的重定向机制。它与JSP中的<jsp:forward …>的区别在于后者是在服务器中实现页面的跳转,也就是说应用容器加载了所要跳转的页面的内容并返回给客户端;而前者是返回一个状态码,这些状态码的可能值见下表,然后客户端读取需要跳转到的页面的URL并重新加载新的页面。就是这样一个过程,所以我们编程的时候就要通过HttpMethod.getStatusCode()方法判断返回值是否为下表中的某个值来判断是否需 ...
1 关键名词     Project:任何您想build的事物,Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM,Poject Object Model)。一个工程可以依赖其它的工程;一个工程也可以由多个子工程构成。     POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中。     GroupId:groupId是一个工程的在全局中唯一的标识符,一般地,它就是工程名。groupId有利于使用一个完全的包名,将一个工程从其它有类似名称的工程里区别出来。    ...
Global site tag (gtag.js) - Google Analytics