自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 深入浅出 Java Concurrency (5): 原子操作 part 4

<br />在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。<br />锁机制存在以下问题:<br />(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。<br />(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。<br />(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。<br />volatile是不错的机制,但是volatile不能保证原子性。因此对于同步最终

2010-07-20 09:42:00 855 1

原创 深入浅出 Java Concurrency (4): 原子操作 part 3 指令重排序与happens-before法则

<br />在这个小结里面重点讨论原子操作的原理和设计思想。<br />由于在下一个章节中会谈到锁机制,因此此小节中会适当引入锁的概念。<br />在Java Concurrency in Practice中是这样定义线程安全的:<br />当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替运行,并且不需要额外的同步及在调用方代码不必做其他的协调,这个类的行为仍然是正确的,那么这个类就是线程安全的。<br />显然只有资源竞争时才会导致线程不安全,因此无状态对象永远是线程安全的。<br

2010-07-20 09:36:00 978

原创 深入浅出 Java Concurrency (3): 原子操作 part 2

<br />在这一部分开始讨论数组原子操作和一些其他的原子操作。<br />AtomicIntegerArray/AtomicLongArray/AtomicReferenceArray的API类似,选择有代表性的AtomicIntegerArray来描述这些问题。<br />int get(int i)<br />获取位置 i 的当前值。很显然,由于这个是数组操作,就有索引越界的问题(IndexOutOfBoundsException异常)。<br /> <br />对于下面的API起始和AtomicIn

2010-07-20 09:32:00 792

原创 深入浅出 Java Concurrency (2): 原子操作 part 1

<br />从相对简单的Atomic入手(java.util.concurrent是基于Queue的并发包,而Queue,很多情况下使用到了Atomic操作,因此首先从这里开始)。很多情况下我们只是需要一个简单的、高效的、线程安全的递增递减方案。注意,这里有三个条件:简单,意味着程序员尽可能少的操作底层或者实现起来要比较容易;高效意味着耗用资源要少,程序处理速度要快;线程安全也非常重要,这个在多线程下能保证数据的正确性。这三个条件看起来比较简单,但是实现起来却难以令人满意。<br />通常情况下,在Java

2010-07-20 09:31:00 1058

原创 深入浅出 Java Concurrency (1) : J.U.C的整体认识

深入浅出 Java Concurrency (1) : J.U.C的整体认识<br />去年年底有一个Guice的研究计划,可惜由于工作“繁忙”加上实际工作中没有用上导致“无疾而终”,最终只是完成了Guice的初步学习教程,深入的研究没有继续进行下去。<br />最近一直用的比较多的就是java.util.concurrent(J.U.C),实际上这块一直也没有完全深入研究,这次准备花点时间研究下Java里面整个并发体系。初步的设想包括比较大的方便(包括硬件、软件、思想以及误区等等),因此可能会持续较长的时

2010-07-15 19:44:00 2553

转载 几行代码解决淘宝面试题之Clojure版

<br />我估计我不写这样的标题,吸引不了人气。问题的起因是Javaeye的一个帖子《淘宝面试题:如何充分利用多核CPU,计算很大的 List中所有整数的和》,看见为了这么个问题写长长的Java代码,让我十分蛋疼。为了表示蛋定,我想介绍下用Clojure解决这个问题的方法。<br /><br />    题目很明确了,要你充分多核,这年头不“多核”不好意思出去跟人打招呼,为了多核,你要将list拆分下,每个子list并发去计算和,然后综合这些结果求出最终的和,您没搞错,这不是传说中人见人爱的MapRedu

2010-07-15 19:30:00 987 3

转载 Java Exception性能问题

<br />背景:<br />大学里学java,老师口口声声,言之凿凿,告诫我们,Java千万别用异常控制业务流程,只有系统级别的问题,才能使用异常;<br />(当时,我们都不懂为什么不能用异常,只知道老师这么说,我们就这么做,考试才不会错 :) )<br />公司里,有两派.异常拥护者说,使用业务异常,代码逻辑更清晰,更OOP;反之者说,使用异常,性能非常糟糕;<br />(当然,我是拥护者)<br />论坛上,争论得更多,仁者见仁智者见智,口水很多;<br />(我不发表意见,其实怎么用,真的都可以)

2010-07-12 20:56:00 731

原创 log4j java版如何将日志写入数据库

<br />其实如果是直接通过jdbc去连接数据库,那么下面的链接的<br />http://www.dankomannhaupt.de/projects/index.html<br />的jdbcappender.zip 已经能很方便的实现这个功能,<br />但是在现实情况,特别是大型应用,基本都是通过datasource来获取<br />connection,而这个zip中已经明确说了不支持 DataSource,那么我们怎么办呢?<br />我是这样解决的,对于j2ee的应用本身不管你用spring

2010-07-10 21:09:00 1597

原创 浅谈Java中的同步的方法和原理

<br />Java的内存模型中Thread会附有自己的堆栈,寄存器,必要时需要和主存即heap之间同步。<br />可以使用Synchornized关键字和Concurrent包中的Lock可以保证线程互斥和可见性。<br />互斥性体现在类锁或者对象锁上,每个对象自身都包含一个监视器,该监视器是一个每次只能被一个线程所获取进入的临界区,可以通过wait和notify来退出和准入临界区。可以看出这是一个生产者-消费者的模型。而Concurrent包中的Lock为了能够获得更好的性能和更好的扩展性,以及不依

2010-07-10 21:08:00 445

原创 java中的double相加的怪事

<br />标题           在Java中实现浮点数的精确计算         AYellow(原作)   修改           <br />  关键字           Java   浮点数   精确计算         <br />    <br />    <br />  问题的提出:   <br />  编译运行下面这个程序会看到什么?   <br />  public   class   Test{   <br />          public   static   void  

2010-07-10 21:03:00 370

转载 JAVA&J2EE FAQ

<br />Java FAQ <br /> <br />目录:<br />Q1.1 什么是Java、Java2、JDK?JDK后面的1.3、1.4版本号又是怎么回事?<br />Q1.2 什么是JRE/J2RE?<br />Q1.3 学习Java用什么工具比较好?<br />Q1.4  学习Java有哪些好的参考书?<br />Q1.5  Java和C++哪个更好?<br />Q1.6  什么是J2SE/J2EE/J2ME?<br />Q2.1  我写了第一个Java程序,应该如何编译/运行?<br />Q

2010-07-10 21:02:00 593

转载 java+sql server+CallableStatement调用存储过程三种情况

<br />在JSP页面中进行测试,代码如下:<br /><%@ page contentType="text/html;charset=gb2312"%><br /><%@ page import="java.sql.*"%><br /><html><br />    <body><br />        <%<br />                    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")<br />     

2010-07-08 10:09:00 706

转载 积累的一些技术性常识

<br />1.<br />......代码段......<br /><script language="javascript"><br />alert("数据插入成功");<br /></script><br /><%response.sendRedirect("adddoc.jsp");%> <br /></body>   <br /></html> <br />以前我的意途是弹出一个对话框后再sendRedirect,因为JSP是在服务器端执行,所以必须这样:<br /><script languag

2010-07-08 10:08:00 448

原创 ORA-12560: TNS: 协议适配器错误的解决方法

<br />造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:<br /><br />1.监听服务没有起起来<br />windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。<br /><br />2.database instance没有起起来<br />windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的data

2010-07-08 10:00:00 328

原创 Web网页中使用Media Player播放MPG视频的代码,并且支持JavaScript控制播放,暂停等功能

<br /><OBJECT id="MediaPlayer1" width="220" height="176" align=baseline border=0 classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"><br /><PARAM NAME="AudioStream" VALUE="-1"><br /><PARAM NAME="AutoSize" VALUE="0"><br /><PARAM NAME="AutoStart" VALUE="0">

2010-07-08 10:00:00 1304 1

原创 J2ME术语

<br />ITU:International Triathlon Union 国际电信联盟<br />PDA:personal digital assistant 个人数字助理<br />3G:3rd Generation 第3代数字通信<br />J2ME:Java 2 Platform Micro Edition JAVA2平台微型版本<br />JCP:Java Community Process JAVA社区组织<br />JSR:Java Specification Requests JAVA规

2010-07-08 09:58:00 304

转载 1个10年工程师的心路路程(五)

<br />第 4 楼 <br /><br />结束语 永无止境的软件之路<br />1.辛酸与苦辣<br />做软件开发很苦的,技术进步如此神速,每个软件开发者都得不断地学习以跟上发展的步伐。有时我常想,何苦呢?我现在在大学中混,怎么样不能混下去?为什么要做这些吃力不讨好的事?我投了十年的时间去学习电脑,却最终发现自己不过中人之资,离顶峰远之又远。古语云:三十而立。我今年32了,仍是孤身一人,看看周围的同学,他们的小孩都差不多上小学了!许多都有了自己的房子和车子,而我到现在才开始申报中级职称,还挤在集体宿

2010-07-07 22:17:00 376

转载 1个10年工程师的心路路程(四)

<br />实践人生<br />-------一个普通it人的十年回顾(下)<br />下篇 曲折的实践之路<br />1.希特勒地堡与cih病毒<br />99年4月,我来到北京参加研究生复试。复试完了之后就不回去了,我拿着一张光盘,里面刻着我用vb和authorware3.5编的一个cool 3d的教学软件,到处参加招聘会,开始了在北京的打工生涯。<br />说句实话,我心中真是一点底也没有。北京人才济济,我一个三流大学的毕业生,又不是计算机专业的,有人要我吗?<br />我在北京无依无靠,没有任何一个

2010-07-07 22:16:00 974

原创 1个10年工程师的心路路程(二)

<br />二 漫长的理论学习时期<br /><br />1.从电脑培训班开始<br /><br />我毕业后的第一个工作单位是一个非常差的企业,我在那儿见识了几乎所有中国差的企业的弊端:人浮于事,拉帮结派,暗箭伤人,损公肥私……。可以想见,在这样的企业工作,人是多么的颓废。我在无聊之中过了大半年的时间。1994年4月的一天我去桂林新华书店买书,看到桂林电子工业学院老师举办一个电脑培训班,教打字、排版、常用dos命令等电脑使用基础,反正也没事,不如上个班学点东西吧。不曾想就是这样一个培训班,却根本影响了我的

2010-07-07 22:13:00 457

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除