摘要:
在本系列的上一篇文章中我们讲到,要实现在同一个事务中使用相同的Connection对象,我们可以通过传递Connection对象的方式达到共享的目的,但是这种做法是丑陋的。在本篇文章中,我们将引入另外一种机制(ConnectionHolder)来完成事务管理。ConnectionHolder的工作机... 阅读全文
摘要:
在本系列的上一篇文章中,我们看到了一个典型的事务处理失败的案例,其主要原因在于,service层和各个DAO所使用的Connection是不一样的,而JDBC中事务处理的作用对象正是Connection对象,所以不同DAO中的操作不在同一个事务里面,从而导致事务失败。从中我们得出了教训:要避免这种失... 阅读全文
摘要:
在本系列的上一篇文章中,我们讲到了Java事务处理的基本问题,并且讲到了Service层和DAO层,在本篇文章中,我们将以BankService为例学习一个事务处理失败的案例。BankService的功能为:某个用户有两个账户,分别为银行账户和保险账户,并且有各自的账户号,BankService的t... 阅读全文
摘要:
Java中的事务处理有多简单?在使用EJB时,事务在我们几乎察觉不到的情况下发挥着作用;而在使用Spring时,也只需要配置一个TransactionManager,然后在需要事务的方法上加上Transactional注解就行了。Java的事务处理之所以这么简单是因为框架在背后为我们做了太多的工作。... 阅读全文
摘要:
package mine.util.thread;import java.util.LinkedList;import java.util.List;/** * 线程池类,线程管理器:创建线程,执行任务,销毁线程,获取线程基本信息 */public final class ThreadPool { ... 阅读全文
摘要:
javascript的执行引擎是单线程的,正常情况下是同步编程的模式,即是程序按照代码的顺序从上到下依次顺序执行。只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),那么在执行期间任何... 阅读全文
摘要:
在浏览器中,Javascript执行与UI更新是发生在同一个进程(浏览器UI线程)中的。UI线程的工作基于一个简单的队列系统,任务会被保存到队列中直到进程空闲时被提取出来执行。所以Javascript的执行会阻塞UI更新;反之,UI更新也会阻塞Javascript的执行。给用户的表现就是浏览器在工作... 阅读全文
摘要:
http://www.infoq.com/cn/articles/challenges-and-optimization-of-cross-border-website周涛明:前端性能优化,按照经常使用的频率和效果上来看,在前端性能优化上经常用到的点如下:第一,减少http请求是非常有效的措施减少h... 阅读全文
摘要:
1.下载Mysql并安装,我喜欢不用安装的zip版,cd到bin目录下,先修改下mysql的密码.mysqladmin -u root -p password mysql ,第一次运行并修改mysql的密码为mysql,注册mysqld服务,mysqld -install2.四种数据不一致性的问题1... 阅读全文
摘要:
package test;public class Test implements Runnable{ public static int j =0; @Override public void run() { synchronized (this) { ... 阅读全文