- 浏览: 35758 次
- 性别:
- 来自: 上海
最新评论
-
龘龘龘:
sesame 写道楼主。。。。1,开源的,这里就有。而且和类加 ...
获取强悍的sun.misc.Unsafe实例 -
taosurf:
下载在哪里,能给个具体点的么
多线程分析工具Mtrat使用 -
sesame:
楼主。。。。1,开源的,这里就有。而且和类加载没关系,只是用了 ...
获取强悍的sun.misc.Unsafe实例 -
giianhui:
非常好,继续研究。
获取强悍的sun.misc.Unsafe实例 -
xuhang1128:
楼主,在你写这篇blog的时候Unsafe应该已经开源了吧,我 ...
获取强悍的sun.misc.Unsafe实例
文章列表
java.util.concurrent 包下很多类的实现用到了基于硬件的CAS算法, 不再使用synchronized关键来进行并发控制,查看相关的源码后会发现最后都指向了一个类 ,这就是SUN未开源的sun.misc.Unsafe的类,该类功能很强大,涉及到类加载机制,其实例一般情况是获取不到的。还好有个反射的机制可以变通下,因为JVM 加载rt.jar时已经加载了该类,并且初始化过。上代码
/*
* Copyright 2010, the original author or authors. All rights reserved.
*/
package com.api ...
转载http://www.ibm.com/developerworks/cn/java/j-jtp06197.html
Java 理论与实践: 正确使用 Volatile 变量volatile 变量使用指南
Brian Goetz (brian.goetz@sun.com), 高级工程师, Sun Microsystems
Brian Goetz 作为一名专业软件开发人员已经 20 年了。他是 Sun Microsyste ...
一个非常不错的多线程分析工具,提供方是IBM,官方上的说明貌似是中国人开发的,NB,反编译看了下 用到了AOP的东东,对死锁的诊断非常有价值,官方地址http://www.alphaworks.ibm.com/tech/mtrat
因在一个为两W人在线服务的保险销售系统中使用到了一个并非控制器,因生产环境是1.4的版本,无法使用最新的无锁定算法支持,Doug Lea 大牛的那个并发包也就是被JDK 1.5吸收的那个NB包的原子类其实还是全部锁定的(1.5及之后全部被重写为无锁定算法),本人觉得会降低该控制器的并发量,决定自己用volatile 和
synchronized 实现并发 ...
J2EE集群原理 由于是从别人给的文本汇总的,没有原作者的相关信息,本人只是汇总供查阅
个人感觉除了负载平衡生产使用的很频繁,失效备援本人还未碰到过这样的项目实施。失效备援的代价太高,考虑的问题非常复杂,感觉 ...
程序员分成几种不同的境界(ZT)
- 博客分类:
- 体会分享
《程序员》杂志上有一篇文章写的非常好,这里节选一段。文章一标题是《程序员分成几种不同的境界》。对比了一下,我觉得自己看来只能属于第五流的程序员。把这篇文章引在这儿,是准备时时刻刻激励自己,往更高层次努力,或者追求更高人生境界。
五流程序员比技术和工具
五流程序员关心的是用什么工具可以产生什么结果,追逐他听过最新、最好、最时髦的技术,沉浸于一些小练习,却很少走出象牙塔和客户或市场进行真正的沟通,甚至完成大型的真实案例。
四流程序员比整合和管理
四流程序员比前者更关心在什么地方使用什么,他的心里放着集成各种技术的地图,而不偏向单一工具和技术,他在乎运作一场战役的风险,还有资金成本的考量,包含 ...
http://www.google.com.hk/gwt/x?oe=UTF-8&gl=CN&q=java+%E8%87%AA%E5%AE%9A%E4%B9%89%E7%B1%BB%E5%8A%A0%E8%BD%BD%E5%99%A8&hl=zh_CN&ei=o7_1TLCTHsm5kgWbjIDSAQ&ved=0CAoQFjAB&source=m&rd=1&u=http://blog.sina.com.cn/s/blog_4b6047bc010008q7.html
序列化对象在Java中主要 ...
一、冒泡排序
已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先比较a[1]与 a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。再比较a[2]与a[3]的值,若a[2]大于a[3]则交换两者的值,否则不变。再比 较a[3]与a ...
为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。
数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。什么叫悲观锁呢,悲观锁顾名思义,就是对数据的冲突采取一种悲观的态度,也就是说假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住。而乐观锁就是认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让用户返回错误的信息,让用户决定如何去做。
先从悲观锁开始说。在SqlServer等其余很多数据库中,数据的锁定通常采用页级锁的方式,也就是说 ...
public AbstractStringBuilder reverse() {
boolean hasSurrogate = false;
int n = count - 1;
//小技巧
for (int j = (n-1) >> 1;j >= 0; --j) {
char temp = value[j];
char temp2 = value[n - j];
if (!hasSurrogate) {
hasSurrogate = (temp >= Character.MIN_SURROGATE & ...
UNION --集合的并,不包含重复行
Union all --集合的并,包含重复行
Intersect --集合的交,不包含重复行
minus --集合的差,不包含重复行
Oracle中系统时间比较熟悉 是select sysdate from dual;
db2中则是 SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1
还有
select CURRENT DATE from SYSIBM.SYSDUMMY1;获得日期
select CURRENT T ...
Java 中的位运算
引用、转贴本文应注明原作者:Rosen Jiang 以及出处:http://www.blogjava.net/rosen
移位运算符
包括:
“>> 右移”;“<< 左移”;“>>> 无符号右移”
例子:
-5>>3=-1
1111 1111 1111 1111 1111 1111 1111 1011
1111 1111 1111 1111 1111 1111 1111 1111
其结果与 Math.floor((double)-5/(2*2*2)) 完全相同。
-5<<3=-40
11 ...
http://www.ibm.com/developerworks/cn/java/j-lo-ibatis-principle/index.html
java多线程设计模式
java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。
Thread类是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法:
Thread t = new Thread();
t.start();
start()方法是一个native方法,它将启动一个新线程,并执行run()方法。Thr ...