`
文章列表
Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化。 而volatile关键字就是提示VM:对于这个成员变量不能保存它的私有拷贝,而应直接与共享成员变量交互。 使用建议:在两个或者更多的线程访问的成员 ...
ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但是在经过一次惨痛的面试经历之后,我觉得必须深入研究它的实现。面试中被问到读是否要加锁,因为读写会发生冲突,我说必须要加锁,我和面试官也因此发生了冲突,结果可想而知。还是闲话少说,通过仔细阅读源代码,现在总算理解ConcurrentHashMap实现机制了,其实现之精巧,令人叹服,与大家共享之。 实现原理 锁分离 (Lock Stripping) Concurr ...
经济危机好像一头出笼的野兽,不管有没有被他咬伤,都看到了老虎的利害,一贯流动性很大的IT工程师们也都小心翼翼起来,本来计划好的涨薪计划,跳槽计划 也都一一泡汤,同时,寄生于这些外企的猎头公司,仿佛似乎也如履薄冰,公司的萧落,死亡,似乎都有点突然。      通信业最先倒掉的是北电,接着是moto的手机部门,这些由管理以及公司战略引起的问题在经济危的波澜中一触即发,终于到了危如累卵的地步,UT也裁掉了鸡肋一般的小灵通部门,intel,EMC,Cisco等巨头也都实行了人才紧缩计划,连华为都捡起了多年没有实行的末位淘汰制, 最惨烈的当属前几年异常火爆的IC业,中小的IC芯片公司更是难以生存,哀鸿 ...
1.volatile:为了获得最佳速度,java允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比,volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值,volatile关键字就是提示VM:对于这个成员变量不能保存它的私有拷贝,而应直接与共享成员变量交互。 使用建议:在两个或者更多的线程访问的成员变量上使用volatile。当要访问的变量已在synchronized代码块中,或者为常量时,不必 ...
Quartz 是一个强大的企业级 Schedule 工具,也是目前最好的开源 Schedule 工具。Spring中也集成了quartz的应用,下面就讲一下如何在spring中使用quartz。 spring的配置: xml 代码 <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">   <property name="triggers">     <l ...
http://www.ooso.net/index.php/archives/294 什么是Firebug 从事了数年的Web开发工作,越来越觉得现在对WEB开发有了更高的要求。要写出漂亮的HTML代码;要编写精致的CSS样式表展示每个页面模块;要调试javascript给页面增加一些更活泼的要素 ...
<!--这里使用Tab标签页做了几个尝试,首先是出现标签页;然后是标签页可用性设置;接着是标签页的内容控制,从外部导入以及引用其他的页面。xcl--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title> New Document </title>     <link rel="stylesheet" type="text/css" href ...
Axis 学习笔记   实例(参考了 axis-bin-1_4.zip \axis-1_4\samples\userguide 中的例子)使用版本为Axis1.4, axis-bin-1_4.zip 下载地址: http://www.apache.org/dist/ws/axis/1_4/   工程axis_example目录结构如下: 目录说明如下: jws :存放*.jws文件 src :java源码 WEB-INF/classes :java编译后的class文件 WEB-INF/lib :需要用到的jar包   Axis 支持三种we ...
使用Axis,要发布一个Web服务非常简单,简直不能再简单了,尽管看起来过程和相关代码有些长。我这个帖子里用到了这些软件:Axis 1.1、Eclipse 2.1和Eclipse的Tomcat插件2.2(Sysdeo Tomcat plugin)。发布的方法如下: 我要发布的服务是一个图书商店,公布的方法有添加图书addBook、列表图书listBooks、删除图书deleteBook等等,为简单起见这里就只发布一个添加图书方法,因为其他方法的发布是类似的。 1、首先在Eclipse里新建一个名为bookstore的Tomcat工程,注意要安装了前面说的Tomcat插件才有这个选项的。如果没 ...
首先到apache的网站下载axis的开发包,好久没看了,现在已经开始出2.0的啦,不过好像还不是很成熟,这里,我们还是用1.x的包。最新的是1.4的包。 一、服务器端开发       首先编写服务端程序,这时我们完全不用考虑他是不是当作webservcies来发布的,因为在写法上没有什么不同。比如我们写了一个很简单的java程序,代码如下: package samples.userguide.example2; public class Calculator { public int add(int i1, int i2) {     return i1 + i2; } public i ...
Axis支持三种web service的部署和开发,分别为: 1、Dynamic Invocation Interface(DII) 2、Dynamic Proxy方式 3、Stubs方式 其中:约定Axis_HOME为该TOMCAT_HOME\webapps\Axis目录 在eclipse环境下测试的时候,客户端都应该是web project. 一、编写DII(Dynamic Invocation Interface )方式web服务 1.编写服务端程序HelloClient public class HelloClient { public String getName(String nam ...
/** * 安装axis */ 下载:http://ws.apache.org/axis/ 1.4 解压后把webapp/axis目录,放置于%TOMCAT_HOME%\webapps\下。 注意需要另外的lib: activation-1.1.jar, mail-1.4.jar, xercesImpl-2.8.1.jar, xml-apis-2.0.2.jar, xmlsec-1.3.0.jar 设置环境变量: AXIS_HOME=E:\download\opensource\axis-1_4 AXIS_LIB=%AXIS_HOME%\lib AXISCLASSPATH=%A ...
随着SOA的流行,webservice开发也变得相当的热门。许多企业都将自己的网站迁移到soa的架构。今天我们来一起体验一下通过axis来创建、发布和调用webservice的过程。如果大家不太了解SOA请访问下面网址(http://www-900.ibm.com/cn/software/rational/solution/tech/soa_design.shtml)         在开始之前我默认大家已经具有axis的安装经验,如果对axis安装和配置发布有任何问题请看http://yangyang.iteye.com/blog/56519 和http://yangyang.iteye.c ...
Tuxedo是一个客户机/服务器的“中间件”产品,它在客户机和服务器之间进行调节,以保证正确地处理事务。Tuxedo是一个事务处理(TP)监督器,它管理联机事务处理(OLTP)系统(参见“事务处理”)操作的事务。客户通过结构化查询语言 ...
下面的文章是我转自我的老大Anderson的邮件,是对我们team一些问题的总结和经验分享。我里面有很多是可以拿出来与大家共享,所以得到作者的同意之后我把原文贴到了这里。 PS:文章取名《正规军的军规》是稍微有些戴帽子了 ...
Global site tag (gtag.js) - Google Analytics