发表于: java/j2ee | 作者: | 日期: 2014/1/22 09:01

Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。
读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,你只要上好相应的锁即可。如果你的代码只读数据,可以很多人同时读,但不能同时写,那就上读锁;如果你的代码修改数据,只能有一个人在写,且不能同时读取,那就上写锁。总之,读的时候上读锁,写的时候上写锁! More …

评论关闭

前面的章节主要谈谈原子操作,至于与原子操作一些相关的问题或者说陷阱就放到最后的总结篇来整体说明。从这一章开始花少量的篇幅谈谈锁机制。
上一个章节中谈到了锁机制,并且针对于原子操作谈了一些相关的概念和设计思想。接下来的文章中,尽可能的深入研究锁机制,并且理解里面的原理和实际应用场合。
尽管synchronized在语法上已经足够简单了,在JDK 5之前只能借助此实现,但是由于是独占锁,性能却不高,因此JDK 5以后就开始借助于JNI来完成更高级的锁实现。 More …

评论关闭
发表于: java/j2ee | 作者: | 日期: 2014/1/22 09:01

重入锁(ReentrantLock)是一种递归无阻塞的同步机制。以前一直认为它是synchronized的简单替代,而且实现机制也不相差太远。不过最近实践过程中发现它们之间还是有着天壤之别。 More …

评论关闭
发表于: other | 作者: | 日期: 2014/1/22 07:01

主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。 More …

评论关闭
发表于: other | 作者: | 日期: 2014/1/22 07:01

1简介
可重入代码(Reentry code)也叫纯代码(Pure code)是一种允许多个进程同时访问的代码。为了使各进程所执行的代码完全相同,故不允许任何进程对其进行修改。程序在运行过程中可以被打断,并由开始处再次执行,并且在合理的范围内(多次重入,而不造成堆栈溢出等其他问题),程序可以在被打断处继续执行,且执行结果不受影响。 More …

评论关闭
发表于: other | 作者: | 日期: 2014/1/22 07:01
标签:

老程序员都到哪儿去了? –寻找40岁之后软件开发者的象冢
人们都认为软件开发是年轻人的游戏。当年轻自信的程序员获得优厚的待遇并向管理层晋升的时候,老程序员们甚至找工作都困难。真的如此吗? More …

评论关闭
发表于: java/j2ee | 作者: | 日期: 2014/1/21 08:01
标签:

一、maven-surefire-plugin简介
maven-surefire-plugin插件用来在maven构建生命周期的test phase执行一个应用的单元测试。maven-surefire-plugin支持JUnit和TestNG。默认情况下,maven-surefire-plugin的test目标会自动执行测试源码路径下所有以Test开头、Test或TestCase结尾的的Java类。 More …

评论关闭
发表于: other | 作者: | 日期: 2014/1/21 08:01

门萨俱乐部是做智力测试的国际组织,1946年建立在英国。号称世界顶级智商俱乐部,最大特色为该会以智商为唯一入会标准。协会从人类利益出发,确认、培养以及巩固人类智商;鼓励开发研究人的智力本能、特征和用途;为会员提供宝贵的智力刺激、交流和发展的机会。六十多年的发展使门萨成为世界上最好的、最大的、最为成功的智商俱乐部。
他们貌不惊人,当中有商贾学者,也有主妇蓝领,因为一个简单的测验,便汇聚在一起,闲来一道饮茶、出游、聚会。这些人兴趣不同,性情各异,但有一点,这些人普遍智商非凡。他们走到一起,只因为他们聪明。将他们拢在一起的这个圈子,叫“门萨” More …

评论关闭
发表于: java/j2ee | 作者: | 日期: 2014/1/21 07:01
标签:

什么是Maven仓库
在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如log4j.jar,junit.jar等等。每建立一个项目,你都需要建立这样的一个/lib目录,然后复制一对jar文件,这是很明显的重复。重复永远是噩梦的起点,多个项目不共用相同的jar文件,不仅会造成磁盘资源的浪费,也使得版本的一致性管理变得困难。此外,如果你使用版本管理工具,如SVN(你没有使用版本管理工具?马上试试SVN吧,它能帮你解决很多头疼的问题),你需要将大量的jar文件提交到代码库里,可是版本管理工具在处理二进制文件方面并不出色。 More …

评论关闭
发表于: java/j2ee | 作者: | 日期: 2014/1/21 07:01
标签:

我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven-compiler-plugin完成的。进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven-compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码,testCompile目标用来编译位于src/test/java/目录下的测试源码。 More …

评论关闭