易截截图软件、单文件、免安装、纯绿色、仅160KB

java 自己实现 ReadWriteLock (一)


多线程读写同一个对象的数据是很普遍的,通常,要避免读写冲突,必须保证任何时候仅有一个线程在写入,有线程正在读取的时候,写入操作就必须等待。简单说,就是要避免“写-写”冲突和“读-写”冲突。但是同时读是允许的,因为“读-读”不冲突,而且很安全。
要实现以上的ReadWriteLock,简单的使用synchronized就不行,我们必须自己设计一个ReadWriteLock类,在读之前,必须先获得“读锁”,写之前,必须先获得“写锁”。举例说明:
DataHandler对象保存了一个可读写的char[]数组:
package com.crackj2ee.thread;
public class DataHandler {
    // store
data:
    private
char[] buffer = "AAAAAAAAAA".toCharArray();
    private
char[] doRead() {
       
char[] ret = new char[buffer.length];
       
for(int i=0; i<buffer.length; i++) {
           
ret[i] = buffer[i];
           
sleep(3);
       
}
       
return ret;
    }
    private void
doWrite(char[] data) {
       
if(data!=null) {
           
buffer = new char[data.length];
           
for(int i=0; i<buffer.length; i++) {
               
buffer[i] = data[i];
               
sleep(10);
           
}
       
}
    }
    private void
sleep(int ms) {
       
try {
   &nb


相关文档:

java 如何配置环境变量

配置java 环境变量很简单 :
首先:
1、双击“我的电脑”
2、双击“控制面板”
3、双击“系统”
4、点击“高级”选项卡,
5、点击“环境变量”按钮
其次:
1、变量名: path
变量值: C:\jdk1.6.0\bin;
2、变量名: classpath
变量值: .;%JAVA_HOME%\lib\ ......

java笔试

    原题如下:用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
 解题思路:
    很明显,这是一个递归算法。我们可以排列将这6个数按从小到大的顺序排一下,如果是1,2,3,4,5,6,那么会有1 ......

改进的Java XML文件合并工具类

工作中遇到需要合并XML的问题,遂从网上查找相关资料,
1、 《 XML merging made easy  


2 、《java中合并xml文档的设计与实现 

测试后发现均不符合实际需求,实际需求如下:
file1.xml: 
<root>
<a>
<b name="1"/>
</a>
<d /& ......

java的类加载机制

Java 语言是一种具有动态性的解释型编程语言,当指定程序运行的时候, Java 虚拟机就将编译生成的 . class 文件按照需求和一定的规则加载进内存,并组织成为一个完整的 Java 应用程序。 Java 语言把每个单独的类 Class 和接口 Implements 编译成单独的一个 . class 文件,这些文件对于 Java 运行环境来说就是一个个可以动态 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号