http://www.cnblogs.com/lidabnu/p/4495785.html 首先需要明确事务的概念:一组原子性的SQL查询,如果数据库引擎能够成功的对数据库应用该组查询的全部语句,那么就执行该组语句,否则所有语句都不执行。 事务有ACID四个特性,即: 原子性:一个事务是一个不可分割的最小工作单元,其操作要么全部成功,要么全部失败; 一致性:数据库总是从一个一致性状态转换为另一个一

https://www.zhihu.com/question/21395848 https://www.zhihu.com/question/24084277/answer/110176733 喜欢看生肉的同学就不用看我的回答了,直接看R大的三篇回答,尤其是第一篇后面的回复部分。 我只是试着用大白话做个简单的整理,希望能更容易理解一点。 关于对象与闭包的关系的一个有趣小故事 (这篇的精华在后面的回

Zookeeper 1、原生ZK方案 Zookeeper中有一种节点叫做顺序节点,假如我们在/lock/目录下创建节3个点,ZooKeeper集群会按照提起创建的顺序来创建节点,节点分别为/lock/0000000001、/lock/0000000002、/lock/0000000003。 ZooKeeper中还有一种名为临时节点的节点,临时节点由某个客户端创建,当客户端与ZooKeeper集群断

Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持四种持久化方式,一是 Snapshotting(快照)也是默认方式;二是Append-only file(缩写aof)的方式;三是虚拟内存方式;四是diskstore方式。下面分别介绍之。 (一)Snapshotting        快照是默认的持久化方式。这种方式是就是将内存中

java interface Java代码   package groovy;      public interface IFoo {       public Object run(Object foo, Object bar);   }     groovy implements Java代码   package groovy;   class Foo implements IFoo {  

java执行groovy shell脚本 <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>2.4.0-beta-1</version> </dependency> 添加groovy jar包支持 =============================

工作中多处接触到了ThreadPoolExecutor。趁着现在还算空,学习总结一下。   前记:   jdk官方文档(javadoc)是学习的最好,最权威的参考。 文章分上中下。上篇中主要介绍ThreadPoolExecutor接受任务相关的两方面入参的意义和区别,池大小参数corePoolSize和maximumPoolSize,BlockingQueue选型(SynchronousQueue

工作中多处接触到了ThreadPoolExecutor。趁着现在还算空,学习总结一下。   前记:   jdk官方文档(javadoc)是学习的最好,最权威的参考。 文章分上中下。上篇中主要介绍ThreadPoolExecutor接受任务相关的两方面入参的意义和区别,池大小参数corePoolSize和maximumPoolSize,BlockingQueue选型(SynchronousQueue

引言 最近恰好在组内分享线程池,又看了看四年前自己写的线程池文章,一是感叹时光荏苒,二是感叹当时的理解太浅薄了,三是感叹自己这么多年依然停留在浅薄的理解当中,没有探究其实现,羞愧难当。遂把分享的内容整理出来,希望能够让读者对线程池有一个全新的认识。 池化 这里池化并不是深度学习中的池化,而是将资源交给池来管理的这一过程。我们在开发中经常回接触到池化资源的技术,最常见的当然是数据库连接池,以及我们今

     首先说明ThreadLocal存放的值是线程内共享的,线程间互斥的,主要用于线程内共享一些数据,避免通过参数来传递,这样处理后,能够优雅的解决一些实际问题,比如hibernate中的OpenSessionInView,就是使用ThreadLocal保存Session对象,还有我们经常用ThreadLocal存放Connection,代码如: [java]  view plain  cop

1 2 3 4 5 6 7 8 9